使用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應用程序的更好方式。非常感謝您的指導。一直跟着你!帽子! –