ASP.NET MVC Ajax.BeginForm AjaxOptions OnSuccess,OnFailure

时间:2018-04-11 13:46:23

标签: jquery asp.net asp.net-mvc asp.net-ajax

一旦响应被完全接收并且DOM更新,我想使用AjaxOptions的OnSuccess选项作为Ajax.BeginForm参数传递给“做某事”。至于我可以从MSDN中找不到,这就是这个选项的作用。 但我有问题

  

AjaxOptions的OnSuccess选项如何在sumbit上触发成功方法

提交后不会被解雇 这是具有添加用户的部分视图的索引页面:

<button  class="button small gray-light pull-right" data-toggle="modal" style="width: 100px;height: 50px;" data-target="#user-modal">ADD</button>

<div class="modal fade bootstrap-modal" id="user-modal" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;">
    <div class="modal-dialog modal-lg">
        <div class="modal-body">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                    <h4 class="modal-title" id="myLargeModalLabel">Add User</h4>
                </div>
                <div class="modal-body">
                    @Html.Partial("~/Views/Home/PV_Add.cshtml", new User())
                </div>
            </div>
        </div>
    </div>
</div>



<div id="result">

</div>

这是添加新用户的操作

 public class HomeController : Controller
       {  
            public ActionResult Index()
           {                      
            UsersDBContext context = new UsersDBContext();
           var users = context.Users.ToList();
           return View(users);
          }
      public ActionResult AddUser(User adduser)
        {
        UsersDBContext context = new UsersDBContext();
        User user = new User();
        user.name = adduser.name;
        user.active = adduser.active;
        user.canlogin = adduser.canlogin;
        user.type = adduser.type;
        context.Users.Add(user);
        context.SaveChanges();
        var _users = context.Users.ToList();

        return Json(new
        {
            val = RenderRazorViewToString("~/Views/Home/PV_Listing.cshtml",_users, ControllerContext, ViewData, TempData)
        }, JsonRequestBehavior.AllowGet);
      }
   }

这是Partialview PV_Add.cshtml

@model User

@using (Ajax.BeginForm("AddUser","Home", new AjaxOptions {OnSuccess = "addUserSuccess" }))
{
    @Html.ValidationSummary(true)
    <div class="row pt-20">
        <div class="col-md-12">
            <div class="row">
                <div class="col-md-6 mb-23">
                    <label>Name</label>
                    <input id="UserName" type="text" name="name" value="" />
                    <label>Active</label>
                    <select id="active" name="active">
                        <option></option>
                        <option>Yes</option>
                        <option>No</option>
                    </select>

                    <label>Canlogin</label>

                    <select id="canlogin" name="canlogin">
                        <option></option>
                        <option>Yes</option>
                        <option>No</option>
                    </select>

                    <label>Type</label>
                    <select id="type" name="type">
                        <option></option>
                        <option>Developer</option>
                        <option>QC</option>
                        <option>UI</option>
                    </select>

                    <input id="btn-add" type="submit" value="Add" class="button medium gray" data-loading-text="Loading...">
                    <button type="button" class="button medium gray-light has-value" data-dismiss="modal" style="background-color: #dedede;">
                        Cancel
                    </button>
                </div>
            </div>
        </div>
    </div>
}


  <script>
     function addUserSuccess(d) {
       debugger
       alert("Sucess")
      if (d.val) {
         $('#result').html(d.PV);
         notifysuccess();
         $('.modal').modal('hide');
       }
    }
  </script>

1 个答案:

答案 0 :(得分:0)

尝试在操作中将其设为帖子而不是获取?