我的观点看起来像这样:
<% 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将起作用。 我做了一些研究,似乎嵌套的表格标签导致了这个问题。
很高兴听到解决这个问题的任何可能的暗示或建议。
谢谢!
答案 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事件。这显然是一项更多的工作,但它让我摆脱了很多堵塞。