我知道我可以使用Html.BeginForm来使用这样的动作参数进行POST:
@using (Html.BeginForm("Details", "Home", new { name = Model.Name }))
我可以这样说:
@using (Html.BeginForm("Details", "Home", FormMethod.Get))
但我似乎无法做到这两点。我怎么样?
以下是相关表单的全部内容:
@using (Html.BeginForm("Details", "Home", new { name = Model.Name }))
{
<div style="text-align: center">
@Html.DropDownList("viewMonth",
new List<SelectListItem>(ViewBag.MonthNames))
@Html.TextBox("viewYear", Model.ViewYear, new {style = "width: 30px"})
<input type="submit" value="Go"/>
<br/>
<br/>
</div>
}
其中viewMonth
和viewYear
是Action / Details中的参数名称。如果我试试
@using (Html.BeginForm("Details", "Home", new { name = Model.Name },
FormMethod.Get))
它将传递viewMonth和viewYear,但不会传递名称。
答案 0 :(得分:8)
但我似乎无法做到这两点
你可以同时做两件事......你可以使用你需要的overload
例如,如果name
是routeValue
:
@using (Html.BeginForm("Details", "Home", new { name = Model.Name },
FormMethod.Get))
如果name是表单的htmlAttribute
:
@using (Html.BeginForm("Details", "Home", FormMethod.Get,
new { name = Model.Name }))
如果你想同时使用routeValues和htmlAttributes:
@using (Html.BeginForm("Details", "Home", new { name = Model.Name },
FormMethod.Get, new { name = "foo_bar" }))