1

我有一个 Razor 表格

using (Html.BeginForm("TermList", "Course", FormMethod.Get))
{

    <div style="text-align:right;display:inline-block; width:48%; margin-right:25px;">
             @Html.DropDownList( "id", (SelectList) ViewBag.schoolId)
    </div>
    <input type="submit" value="Choose school" />
}

我希望此表单发布到以下 URI:

http://localhost:56939/Course/TermList/764

相反,路线看起来像:

http://localhost:56939/Course/TermList?id=764

该路线未被使用。我想取消参数

?id=764
4

1 回答 1

1

附加到 URL的原因?id=764是因为您使用的是FormMethod.Get. 您将与表单一起传递的任何值都将添加到查询字符串中。你需要使用FormMethod.Post.

@using(Html.BeginForm("TermList", "Course", FormMethod.Post))
{
    ... Your form stuff here ...
}

这将导致表单操作http://localhost:56939/Course/TermList/

如果要发布到http://localhost:56939/Course/TermList/764您需要在语句中传递id参数:Html.BeginForm

@using(Html.BeginForm("TermList", "Course", new { @id = 764 }, FormMethod.Post))
{
    ... Your form stuff here ...
}

显然,不是硬编码764,而是使用存储该值的任何变量。

于 2012-12-22T00:53:46.247 回答