c# - Ajax.BeginForm 似乎重定向 Action 完成

标签 c# .net ajax asp.net-mvc-3

我目前正在开发 .net mvc 3 应用程序。这就是问题所在。出于某种原因,虽然我正在使用 Ajax.BeginForm 并且正在调用正确的操作,但在操作完成后,它试图重定向到另一个不存在的页面。但是,我希望它保持在同一页面上,只需使用 ajax 提交表单并在操作完成后向用户返回一些友好的消息。

这是我的 Ajax.BeginForm 页面:

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { HttpMethod = "Post" }))
{
    <div id="lnkContainer"><a href="#" onclick="javascript:document.forms[0].submit(); return false;">Update</a>&nbsp;</div>
    @Html.TextAreaFor(m => m.Message, new { style = "width:575px" })
}

这是我的操作:

[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public PartialViewResult Action(ActionModel actionModel)
{
database-related code
.....
database-related code

return PartialView(); 
}

最佳答案

我相当确定您的问题在于 onclick="javascript:document.forms[0].submit();" .这会将表单作为正常的 POST 请求提交。如果你想使用 @Ajax.BeginForm helper ,使用常规 <input type="submit">触发提交。如果您确实需要使用链接,则使用 @Ajax.BeginForm真的没关系,因为您将不得不使用 jQuery 等编写提交 Ajax 请求的代码。

至于Ajax.BeginForm和重定向有关,如果用户在浏览器中禁用了 javascript,或者如果您缺少适当的脚本等,表单将恢复为普通的 HTML 表单。

关于c# - Ajax.BeginForm 似乎重定向 Action 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447792/

相关文章:

C# : How to get number of days from an object of DateTime

php - 根据选项更改价格

c# - FxCop:异步方法的抑制消息

javascript - 每次刷新时从内部更新面板执行 javascript

javascript - .on() 和 AJAX 的问题

c# - XDocument XDeclaration 未出现在 ToString 结果中

c# - NHibernate CreateSQLQuery

c# - 使用 C# 中的通用列表和接口(interface)进行类型转换 - 寻找优雅的解决方案

c# - IronPython DLR;将参数传递给编译代码?

.net - 当达到 WCF 连接的最大数量时会发生什么?