我有一个用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);
}
我真的不知道为什么会这样......
提前谢谢!
编辑: 我的表格在桌子内,我忘了添加它..
答案 0 :(得分:2)
您的标记无效 - 表单元素不能是表元素的子元素。重新排列您的标记,以便@using (Html.BeginForm(
位于<th>
内。
答案 1 :(得分:0)
你不需要写'Mycontroller'完全尝试只用形式写前缀。
答案 2 :(得分:0)
同时确保您的用户无法停用JavaScript。 我花了最近两天的时间试图弄清楚为什么这对IE8不起作用,但在其他浏览器上却没问题。我甚至不得不构建一个Windows XP hyper-v安装,只是为了尝试重现这个问题!