Internet Explorer中的MVC4 Html.BeginForm提交按钮> 9无法正常工作

时间:2014-06-06 08:23:09

标签: asp.net-mvc-4 razor postback internet-explorer-10 internet-explorer-11

我有一个用ASP.NET MVC4 / Razor编写的表单。表单帖子在Firefox和Chrome中运行得非常好,但出于某种原因,在Internet Explorer 10和11中,"提交"按钮没有响应。 (Internet Explorer 9也很好用)。

这是我在视图中的表单的样子:

<div class="bla">
    <table style="width:100%;">
    @using (Html.BeginForm("MyAction","MyController", FormMethod.Post, new        {id="myID"}))
    {
       <thead>
            <tr>
                <th class="heading highlight">Enter Registration</th>
                <th>
                    <span style="display: block;">
                        @Html.EditorFor(model => model.Sign)
                        <input style="margin-left:4px;" type="submit" value="Save" />
                    </span>
                    <span style="display: block; font-weight: normal;">@(Model.SignDescription)</span>

                </th>
            </tr>
        </thead>
    }
    </table>
</div>

这是我的控制器:

[HttpPost]
public ActionResult MyAction(InfoModel infoModel)
{
     if(!string.IsNullOrEmpty(infoModel.Sign))
     {
            //do something
     }

     infoModel = LoadModel ();

     return (indoModel);
}

我真的不知道为什么会这样......

提前谢谢!

编辑: 我的表格在桌子内,我忘了添加它..

3 个答案:

答案 0 :(得分:2)

您的标记无效 - 表单元素不能是表元素的子元素。重新排列您的标记,以便@using (Html.BeginForm(位于<th>内。

答案 1 :(得分:0)

你不需要写'Mycontroller'完全尝试只用形式写前缀。

答案 2 :(得分:0)

同时确保您的用户无法停用JavaScript。 我花了最近两天的时间试图弄清楚为什么这对IE8不起作用,但在其他浏览器上却没问题。我甚至不得不构建一个Windows XP hyper-v安装,只是为了尝试重现这个问题!