Asp.net mvc ASP.NET MVC在新页面中显示ajax结果,而不是UpdateTargetId

Asp.net mvc ASP.NET MVC在新页面中显示ajax结果,而不是UpdateTargetId,asp.net-mvc,asp.net-mvc-ajax,Asp.net Mvc,Asp.net Mvc Ajax,我正在使用Ajax.BeginForm发出Ajax请求,但是asp.net mvc在新页面中显示结果,而不是在UpdateTargetId中设置的div。我确保页面上只有一个同名的div 生成的标记是: <form action="/MyController/MyAction" id="myform" method="post" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { inse

我正在使用Ajax.BeginForm发出Ajax请求,但是asp.net mvc在新页面中显示结果,而不是在UpdateTargetId中设置的div。我确保页面上只有一个同名的div

生成的标记是:

<form action="/MyController/MyAction" id="myform" method="post" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'myDiv', onSuccess: Function.createDelegate(this, someJsFunction) });">
    <input type="text" name="name" id="userInput" value="" />
    <input type="submit" id="mySubmit" style="display:none" />
    </form><div id="myDiv"></div>

我正在使用最新版本的asp.net mvc。我没有得到任何脚本错误,我仔细检查了所有id的唯一性,所有js函数都存在并且工作没有错误。标记是html严格有效的,只是输入不能直接在表单中,但在其他页面上可以正常工作。服务器端代码成功运行,返回的标记完全正确。除了结果显示在新页面上而不是在我的div中之外,一切似乎都很好。我做错了什么?

首先是一个一般提示:为什么要单击不可见的提交按钮才能提交? 您也可以使用:

 $("#myform").submit();
关于您的问题,一定是javascript代码有问题,可能您没有在页面上包含ajax js库。。。因为如果javascript失败,表单将使用提供的操作上的post方法正常提交。 尝试在IE中打开客户端脚本调试(实际上,您必须在工具/Internet选项的高级面板中禁用“禁用脚本调试”)。
或者用于Firefox。

首先是一个一般提示:为什么要单击一个不可见的提交按钮来提交? 您也可以使用:

 $("#myform").submit();
与您的问题相关的是,javascript代码一定有问题,可能您没有在页面上包含ajax js库……因为如果javascript失败,表单将使用提供的操作上的post方法正常提交。 尝试在IE中打开客户端脚本调试(实际上,您必须在工具/Internet选项的高级面板中禁用“禁用脚本调试”)。
或者用于Firefox。

我也有同样的问题,解决方案是引用MicrosoftJax.js和MicrosoftMvcAjax.js,我已经忘记了。

我也有同样的问题,解决方案是引用MicrosoftJax.js和MicrosoftMvcAjax.js,我已经忘记了。

您的操作返回什么?视图?部分视图?Json结果?您的操作返回什么?视图?PartialView?JsonResult?当我这样做时,在另一个页面中会出现相同的问题,但当我单击一个不可见的提交按钮时,问题就消失了。正如我所说,我调试了所有脚本,它们都工作正常。我确保包含了所有必要的js库。当我这样做时,在另一个页面中也会出现相同的问题页面,但当我单击一个不可见的提交按钮时,问题就消失了。正如我所说,我调试了所有脚本,它们都工作正常。我确保我包含了所有必要的js库。这将是我的建议。如果你没有这些脚本文件,它的行为就像你描述的那样。检查Firebug或Fiddler以查看它们是否正在加载。这将是我的建议。如果你没有这些脚本文件,它的行为就像你描述的一样。检查Firebug或Fiddler以查看它们是否正在加载。