3

我知道我可以使用 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>
}

其中viewMonthviewYear是 A​​ction/Details 中的参数名称。如果我尝试

@using (Html.BeginForm("Details", "Home", new { name = Model.Name }, 
                        FormMethod.Get))

它将传递 viewMonth 和 viewYear,但不传递名称。

4

1 回答 1

8

但我似乎不能两者兼得

你可以两者都做......你可以使用overload你需要的

例如,如果namerouteValue

@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" }))
于 2012-08-13T20:18:30.337 回答