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

Javascript ASP.NET MVC,IE中的未知运行时错误(嵌套表单),javascript,asp.net-mvc,ajax,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" })%> <d

我有这样的观点:

<% 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将正常工作。 我做了一些研究,似乎是嵌套的表单标签导致了这个问题

在解决这个问题时,我很乐意听到任何可能的提示或建议


谢谢大家!

嵌套表单在HTML中是非法的。你不能这么做。IE的反应往往比Firefox更糟糕,但你不应该在两种浏览器中都这么做


嵌套表单在HTML中是非法的。你不能这么做。IE的反应往往比Firefox更糟糕,但你不应该在两种浏览器中都这么做


在这种情况下,我更喜欢创建一个看起来像表单(甚至是对话框)的div,并将这些“表单”元素的ajax post连接到按钮的onclick事件。显然,这需要做更多的工作,但它让我摆脱了很多麻烦。

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

因此,一个可能的解决方案是删除嵌套表单,并用Ajax.ActionLink?替换提交按钮,或者只是取消嵌套表单。你可以有多种形式;它们就是不能嵌套。嗨。谢谢你的回复。如果我取消嵌套它们,将出现一些设计问题:)。如果我使用actionlink(或jquery),我需要手动将所有数据传递给action?(即新的{id=textbox1.value,name=textbox2.value}?依我看,取消嵌套表单通常比完全绕过表单更容易。但这是您的代码,我还没有看到,所以您必须自己决定。因此,一个可能的解决方案是删除嵌套表单,并用Ajax.ActionLink替换提交按钮?或者只是取消嵌套表单。您可以有多个表单,但它们不能是您好。谢谢您的回复。如果我取消嵌套,将出现一些设计问题:)。如果我使用actionlink(或jquery),我需要手动将所有数据传递给action?(即new{id=textbox1.value,name=textbox2.value}?通常,取消嵌套表单要比完全绕过表单容易。但这是您的代码,我还没有看到,所以您必须自己决定。