javascript - 如何让 ActionResult 不重定向页面?

标签 javascript c# ajax asp.net-mvc

所以我的 Controller 中有一个 HttpPost,它需要我的模型中的一个对象。然后,它根据操作的成功返回 HttpStatusCodeResult。在我看来,我想根据状态代码结果运行一些基本的 JavaScript,而不是重定向到新页面。我只需使用 AJAX 即可完成此操作,但我需要使用表单发送对象。我该如何去做呢?

最佳答案

您可以序列化表单并通过 ajax 发送。您的模型绑定(bind)将会正常工作。发送一个响应,您的客户端 js 代码可以读取并执行您的自定义函数。

例如,您可能有一个具有如下形式的创建 View

@model CreateCustomerVM
@using(Html.Beginform())
{
  @Html.TextBoxFor(s=>s.Name)
  <input type="submit" id="btnSubmit" />
}

以及处理表单发布的脚本

$(function(){
  $("#btnSubmit").click(function(e){
    e.preventDefault();

    var frm=$(this).closest("form");
    $.post(frm.attr("action"),frm.serialize(),function(res){
        //do something with res here'
        // if(res.Success)
        // {
        //  alert(res.Message)
        // }
    });

  });
});

因此,您的 HttpPost 操作方法应该读取已发布的表单,执行所需的操作并发回响应,如下所示

[HttpPost]
public ActionResult Create(CreateCustomerVM model)
{
  // to do : Read from model and save
  // someService.Save(model)
  return Json(new { Success = true, Message="Saved successfully"});  
}

关于javascript - 如何让 ActionResult 不重定向页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111362/

相关文章:

javascript - 对象不继承其原型(prototype)方法的问题

javascript - Facebook Create React App Build - 添加图像作为 Prop 类型

javascript - 根据圆圈的大小包装气泡图

c# - 用 Java 编写以与 .Net 一起工作?

c# - 如何防止用户进行未经授权的 web 方法调用和篡改客户端验证

javascript - 如何在客户端浏览器中读取服务器文件

javascript - 如何使用 angularjs 将文件详细信息发送到后端?

c# - 如何通过 powershell 或 C# 使用本地 IP 远程更新 azure webapp 防火墙

c# - 我可以对同一个端点使用普通的 http 和 https 吗

sql - Laravel ajax 在追加中使用 if 条件