MVC 4 表单提交不会产生所需的 url 参数

本文关键字:url 参数 表单提交 MVC | 更新日期: 2023-09-27 18:35:42

我正在尝试使用表单来允许用户选择一个日期并通过url参数将其传递回控制器。 我的目的是让表单提交一个看起来像工资单/索引/id?employeeID="foo"的网址?DayInWeekInput="bar". 相反,这会生成网址工资单/索引/ID?所以我显然做错了什么。 如何使用表单执行此操作? 如果不可能,你能解释一下替代方案吗? 谢谢。

using (Html.BeginForm("Index", "Payroll", new { id = @ViewBag.SupervisorID, employeeID=@ViewBag.EmployeeID }, 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>                       
}

MVC 4 表单提交不会产生所需的 url 参数

你停止命名,如果你保持名字,它应该对你有用

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放在隐藏字段中。 视袋可能不稳定。