9

Razorビューには次のものがあります。

 @using (Html.BeginForm("Edit", "MyController", FormMethod.Post))
{
    <div class="grid_1">&nbsp;</div>
    <div id="ValSummary"> @Html.ValidationSummary(false)</div>


    @Html.EditorFor(x => x.Role, MVC.Shared.Views.EditorTemplates.KeyValuePairSelectList, new { SelectListOptions = Model.RoleSelectList })<br /><br />
    @Html.EditorFor(x => x.Trust, MVC.Shared.Views.EditorTemplates.KeyValuePairSelectList, new { SelectListOptions = Model.TrustSelectList.OrderBy(x => x.Text) })<br /><br />
    @Html.EditorFor(x => x.GmcCode)<br /><br />


    <div class="createbutton">
        <input id="btnGoBack" type="button" value="Back"/>  
        <input id="btnSubmit" type="button" value="Submit" />
    </div>

}

私のコントローラーには

[HttpGet]
public virtual ActionResult Edit(string id)
{
}

[HttpPost]
public virtual ActionResult Edit(ViewModel viewModel)
{
}

Firefox と Chrome ではすべて正常に動作しますが、IE ではフォームが送信されると、HttpPost ではなく HttpGet アクションが起動されます。

コール スタックまたは IE 開発者ツール コンソールからの手がかりはありません。

私が行方不明であることは明らかですか?

4

1 に答える 1

8

[送信]ボタンは、実際の送信ボタンである必要がありますtype="Submit"

<input id="btnSubmit" type="submit" value="Submit" />

すべてのブラウザでフォームを正しく送信します。

さらなる違いについては、このSOの質問を参照してください:<input type='button'/>と<inputtype='submit'/>の違い

于 2012-08-15T08:52:41.113 に答える