2013-10-16 49 views
0

我正在尝试使用表单来允许用户选择日期并通过url参数将其传递回控制器。我的意图是让表单提交一个看起来像Payroll/Index/id?employeeID =“foo”?的网址DayInWeekInput =“bar”。相反,这会产生网址Payroll/Index/id?所以我显然做错了什么。我怎样才能做到这一点与表格?如果不可能,你能否解释一个替代方案?谢谢。MVC 4表单提交不会导致所需的url参数

using (Html.BeginForm("Index", "Payroll", new { id = @ViewBag.SupervisorID, [email protected] }, FormMethod.Get)) 
{ 
    @*@Html.AntiForgeryToken()*@ 
    @Html.ValidationSummary(true) 

    <div class="editor-field"> 
     <input type="date" id="DayInWeekInput" value="@string.Format("{0:yyyy-MM-dd}", Model.SpecifiedWeekStart)" /> 
     <input type="submit" value="Go" /> 
    </div>      
} 

回答

0

你停止命名,如果你把名字了它应该为你

using (Html.BeginForm("Index", "Payroll", new { id = @ViewBag.SupervisorID, EmployeeID = @ViewBag.EmployeeID, DaysInWeekInput = "bar" }, FormMethod.Get)) 

由于这项工作对你没有工作,我会尝试下一个Ajax调用

$('.btnSubmit').on('click', function(){ 
    $.ajax({ 
     url: '@Url.Action("Index", "Payroll")', 
     data: { 
      id: @ViewBag.SupervisorID, 
      EmployeeID: @ViewBag.EmployeeID 
     }, 
     success: function (_result) { 
      if (_result.Success) { 

      } 
     } 
    }); 
}); 

我也建议把你的id放在隐藏字段中。 Viewbag可能不稳定。

+0

不幸的是,这仍然没有得到它。希望显式设置前两个参数,然后让日期编辑器指定第三个(DaysInWeekInput)。 – user2886826

+0

看到我上面的编辑 –

+0

我很新的Asp.Net和一般的网页开发,请耐心等待我。我用