如何在asp.net mvc视图中回答JavaScript

本文关键字:JavaScript 视图 mvc asp net | 更新日期: 2023-09-27 18:06:59

我有这样的代码:

@if (!string.IsNullOrWhiteSpace(Model.ErrorMessage))
{
    <script>
        $('#modalError').modal('show');
    </script>
    Response.Write("<script>alert('hello');</script>");
    HttpContext.Current.Response.Write("<script>alert('hello');</script>");
}

Where check if Model。错误消息不同于空,所以我向用户发出警告,但是表单提交的条件没有,如果这样工作,怎么能做到呢?

already I tried so:

@if (!String.IsNullOrEmpty(ViewData["erro"] as string))
{
    <script>alert(@ViewData["erro"]);</script>
}

这是视图的一部分。

我的控制器是这样的:

public ActionResult Login(LoginViewModel model, SignInMessage message)
        {
            if (!String.IsNullOrEmpty(model.ErrorMessage))
                ViewData["erro"] = !String.IsNullOrEmpty(model.ErrorMessage) ? model.ErrorMessage : null;
            return this.View(model);
        }

我想显示一个javascript消息,因为我将使用模式引导

如何在asp.net mvc视图中回答JavaScript

正如其他人在评论中指出的,我也同意,不确定你的方法是否正确,或者如果是,那么我们需要更多的信息,也就是说,你有以下选择

  1. 在视图模型上使用简单的数据验证来通知用户一个无效的电子邮件-这是内置到MVC为您- MVC的数据注释。以下是链接http://www.asp.net/mvc/overview/older-versions-1/models-data/performing-simple-validation-cs
  2. 从你的评论来看,看起来你想在登录时显示一些东西失败,意味着你的服务器代码返回说Auth failed,如果是这样的话,我假设这里是这样的控制器代码

    public ActionResult Login(LoginModel login)
    {
       if(ModelState.IsValid)
       {
          //you call your service to get back the result
          if(!NotAValidUser)
          { 
             ModelState.AddModelError("LoginFailed", "The user name and or password is incorrect.")
          }
       }
    }
    

    @Html.ValidationMessage("LoginFailed") // this will display the above message
    

如果它是一个视图,那么你最好使用Javascript/JQuery。为此,您需要在HTML的某个地方添加一个隐藏字段,并将值设置为Model.ErrorMessage。这样的:

<input type="hidden" id="hdError" value="@Model.ErrorMessage" />

然后在HTML正文的末尾添加Javascript代码:

<script>
$(function() {
    var errorStr = $("#hdError").val();
    if (errorStr) {
        alert("hello"); //or any other alert message
    } 
});
</script>