使用jQuery ajax进行一些CRUD操作的MVC 3应用程序。使用HttpPost无法工作的MVC3 jQuery表单提交和RedirectToAction
我发布我的用户详细信息表单到控制器方法来保存信息。 一旦信息得到保存,我重定向到详细信息页面通过将保存的ID和一些TempData的信息显示,如“用户保存的全成”
但它不是在控制器要详细方法,SaveUserDetail方法后,一些消息。
这里是我的控制器代码
[HttpPost, Authorize]
public ActionResult UserDetail(string Id)
{
User user = AdminService.SelectUserByUserName(Id);
UserDetailViewModel viewModel = Mapper.Map<User, UserDetailViewModel>(user);
if (TempData["SaveStatus"] != null && TempData["SaveStatus"] == "true")
{
viewModel.InSaveMode = true;
viewModel.SaveStatus = true;
}
return View(viewModel);
}
[HttpPost, Authorize, ValidateAntiForgeryToken]
public ActionResult SaveUserDetail(UserDetailViewModel viewModel)
{
User userToSave = new User();
AdminService.UpdateUser(userToSave);
TempData["SaveStatus"] = "true";
return RedirectToAction("UserDetail", new { Id = viewModel.userId});
}
我的jQuery代码
$("#user-detail-form").submit(function (e) {
if ($(this).valid()) {
$.post('@Url.Action("SaveUserDetail")',
$(this).serialize(), function (data) {
$("#user-detail-box").html(data);
$.validator.unobtrusive.parse($("#user-detail-box"));
});
}
e.preventDefault();
});
非常感谢。这是成功。但为了显示成功消息,我使用TempData并参考。可以吗?或任何其他推荐的方式? –
我将传递成功消息作为查询字符串参数而不是使用TempData。 –
我也做了同样的事情,并享受开发MVC3应用程序的更好方式。非常感谢您的指导。一直跟着你!帽子! –