3

Html.BeginForm を使用して、次のようなアクション パラメーターを使用して POST できることはわかっています。

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

そして、私はこのようにGETできます:

@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はアクション/詳細のパラメーター名です。私が試したら

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

viewMonth と viewYear は渡しますが、name は渡しません。

4

1 に答える 1

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