如何在asp.net核心mvc控制器中显示警告消息框?

时间:2017-09-11 07:20:08

标签: asp.net-core-mvc

我希望在帐户模型无效时显示提醒消息框。 我应该如何在Asp.Net Core MVC中的控制器中执行此操作? 这是我的控制器代码

    [HttpPost]
    public IActionResult Index(Account model)
    {
        if (model.ID != null && model.PassWord != null)
        {
            using (var db = new AccountDBContext())
            {
                var account = db.Account.FirstOrDefault(
                                a => a.ID.Equals(model.ID) && a.PassWord.Equals(model.PassWord)
                              );

                if(account != null)
                    return RedirectToAction("Index", "Main");       

            }
            //I want to display error msg box...here like "Check ID or PW".
            ModelState.AddModelError("", "Error");

        }


        return View();
    }

我搜索过的方式,但没有" Page"标识符或" Response.write()"此控制器类中的方法.... 我该怎么办?

P.S 我检查模型验证的方式是正确的吗? (我使用了模型并检查了它的部分属性,而不是使用视图模型)

1 个答案:

答案 0 :(得分:5)

在控制器中定义错误:

ModelState.AddModelError("Error", "Check ID");

然后在视图中显示:

@if (!ViewData.ModelState.IsValid && ViewData.ModelState["Error"].Errors.Count > 0)
{
    <div class="alert alert-
       <strong>Error!</strong> danger">@ViewData.ModelState["Error"].Errors.First().ErrorMessage
    </div>
}

修改

要显示警告框,请在视图中添加一些javascript,以下使用jquery:

<head>
    <script type="text/javascript">
        @if (!ViewData.ModelState.IsValid && ViewData.ModelState["Error"].Errors.Count > 0)
        {
            <text>
            $(document).ready(function() {
                alert('@ViewData.ModelState["Error"].Errors.First().ErrorMessage');
            });
            </text>
        }
    </script>
</head>