我在尝试使用ASP.NET MVC3的Ajax.BeginForm方法时遇到了一个奇怪的问题。表单使用正确的action属性正确地呈现在页面上。但是,当提交表单时,"OnFailure“事件将返回"Not Found”404错误。
如果我使用fiddler查看请求,我会看到post URL是"/Object NodeList“,这显然是无效的。
我的Razor代码如下:
@using (Ajax.BeginForm("Save", "Items", new AjaxOptions { UpdateTargetId = "itemContainer", InsertionMode = InsertionMode.Replace, OnFailure = "onFailure"}))
{
<div style="position:absolute; bottom:20px; left:200px;">
<button type="submit" id="Save" name="action" value="Save">Save</button>
<button type="submit" id="Cancel" name="action" value="Cancel">Cancel</button>
</div>
}
发布于 2011-12-08 21:57:10
问题是使用"action“作为提交按钮上的name属性。当我将name属性更改为不同的值时,一切都开始正常工作。
我猜在这个不起眼的ajax库中有一个jQuery选择器被搞糊涂了。
发布于 2011-12-08 06:23:26
你的web.config中有没有打开或关闭不显眼的JavaScript?我首先猜到的是,ms Ajax库表现得很傻,所以启用了unobtrusive,这样我们就得到了jquery的支持。
您的表单操作设置为什么?如果可以的话,发布你的表单HTML元素。
https://stackoverflow.com/questions/8422863
复制相似问题