在asp core mvc中的bootstrap模式中显示服务器验证错误或viewbag / tempdata消息

时间:2018-02-26 13:47:08

标签: twitter-bootstrap asp.net-core bootstrap-modal

我正在开发一个asp核心网站,我想在bootstrap中显示asp-validation-summary消息和viewbag或tempdata或任何消息。经过一些研究和实验,我找到了一种方法来做到这一点,但它非常笨拙,并没有达到标准。 你能否建议一个更好的方法来做到这一点。

以下是我的代码段

控制器代码段

[^;]*

查看代码段

 public async Task<IActionResult> UserHome(UserProfileViewModel model)
        {
            if (ModelState.IsValid)
            {                               
            AppUser user = await userrepo.GetLoggedInUserAsync(HttpContext);
            Mapper.Map<UserProfileViewModel,AppUser>(model,user);
            await userrepo.UpdateUserAccountAsync(user);
            TempData["Message"] = "Profile updated";
            return RedirectToAction("UserHome");
            }
            else
            {
                return View(model);
            }
        }

1 个答案:

答案 0 :(得分:0)

我对视图所做的改动很小, 在Javascript中使用您的TempData

<div class="modal fade" id="myModal">
 <div class="modal-dialog">
  <div class="modal-content">

  <!-- Modal Header -->
  <div class="modal-header">
    <h4 class="modal-title">Modal Heading</h4>
    <button type="button" class="close" data-dismiss="modal">&times;</button>
  </div>

  <!-- Modal body -->
  <div class="modal-body">
   <div asp-validation-summary="All"></div>
   <div id="Message"></div>


  </div>

  <!-- Modal footer -->
  <div class="modal-footer">
    <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  </div>

</div>

将此行放入脚本内

<script> 
$(document).ready(function() {

    var msg = "@TempData["Message"]";
        //Check the condition if its not empty
        if (msg != "") {

           $("#Message").text(msg);
           $('#myModal').modal('show');
        }

});
</script>