【发布时间】:2018-09-21 10:36:35
【问题描述】:
一旦完全收到响应并更新 DOM,我想使用作为 Ajax.BeginForm 参数传递的 AjaxOptions 的 OnSuccess 选项来“做某事”。据我从 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);
}
}
这是部分视图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>
【问题讨论】:
标签: jquery asp.net asp.net-mvc asp.net-ajax