ASP .NET MVC,IE中的未知运行时错误(嵌套表单)

时间:2009-12-15 14:19:29

标签: javascript asp.net-mvc ajax

我的观点看起来像这样:

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "someDiv", HttpMethod = "Post"))
   {%>

 <%= Ajax.ActionLink("Add new", "AddNewItem", new AjaxOptions { UpdateTargetId = "divAddNewItem", HttpMethod = "Get" })%>

<div id="divAddNewItem">
</div>

  <input type="submit" value="Create" />

<% } %>

“AddNewItem”动作返回部分视图,该视图呈现为divAddNewItem,AddNewItem视图代码如下所示:

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "divAddNewItem", HttpMethod = "Post"))
   {%>

       <input type="submit" value="Add" />
<% } %>

在这种情况下,单击“添加新”按钮后IE将给出异常(未知的运行时错误),而chrome和firefox将起作用。 我做了一些研究,似乎嵌套的表格标签导致了这个问题。

很高兴听到解决这个问题的任何可能的暗示或建议。

谢谢!

2 个答案:

答案 0 :(得分:2)

嵌套表单在HTML中是非法的。你不能这样做。 IE往往比Firefox更糟糕,但你不应该在任何一个浏览器中都这样做。

  

There can be several forms in a single document, but the FORM element can't be nested.

答案 1 :(得分:1)

在这种情况下,我更喜欢制作一个看起来像表格的div(甚至是DHTML的对话框),并将这些“表单”元素的ajax帖子连接到按钮的onclick事件。这显然是一项更多的工作,但它让我摆脱了很多堵塞。