如何显示MVC5的多个验证消息



我的视图有一个文本框(电子邮件)和一个提交按钮。

@using (Html.BeginForm("FindMyDetail", "ResetPassword", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
   {
      @Html.AntiForgeryToken()
      <h4>Enter your email.</h4>
     @Html.ValidationSummary(false, "", new { @class = "alert alert-danger" })
 @Html.ValidationMessageFor(m=>m.Email)
<div class="form-group">
    @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @*@Html.TextBoxFor(m => m.Email, new { @class = "form-control", @value = @Html.DisplayFor(m => m.Email) })*@
        @Html.TextBoxFor(m => m.Email, true, htmlAttributes: new { @class = "form-control", placeholder = "Enter Email Id you used to register" })
    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" class="btn btn-default" value="Email Link" />
    </div>
</div>

}

我必须在MVC Web应用的视图中显示多个验证消息。

案例1:显示验证消息以输入textbox空白时输入电子邮件ID。

case2:如果存在电子邮件,请提交按钮会触发邮件。如果邮件失败(false)验证消息不存在电子邮件。单击"提交"按钮,将触发邮件触发给定电子邮件的控制器。如果我将返回带有成功消息的其他视图,否则我将返回相同的视图(emaillink视图)

在ASP.NET WebForms中实现这一目标似乎很容易,但看起来非常不同,并且自从新手以来就在MVC中实现这一点感到困惑。

编辑:我需要使用自定义验证进行实现。

有两种简单的方法可以做到这一点,您可以在客户端或服务器端进行验证。

客户端

在您的页面中导入此jQuery插件:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.min.js

和在JavaScript文件上,您可以创建所需的验证,例如:

$(document).ready(function() {
  $("#FindMyDetail").validate({
    rules: {
      Email: {
        required: true,
        maxlength: 40,
        email: true
      }
    },
    messages: {
      Email: {
        required: "We need your email address to contact you",
        email: "Your email address must be in the format of name@domain.com"
      }
    }
  });
});

服务器端

您可以使用ASP.NET框架,并让其验证您的模型。您必须使用一些属性来装饰模型,例如:

public class Person
{
    public int ID { get; set; }
    [Required]
    [StringLength(40)]
    public string Email { get; set; }
}

在您的控制器的动作中:

[HttpPost]
public ActionResult Create(Person person)
{
    if (ModelState.IsValid)
    {
        //foo
        return RedirectToAction("Index");
    }
    return View(person);
}

相关内容

  • 没有找到相关文章

最新更新