如何让Razor表格使用路线

时间:2012-12-21 21:47:23

标签: asp.net-mvc-3 razor

我有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

1 个答案:

答案 0 :(得分:1)

?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只需使用存储该值的任何变量。