[Asp.net mvc]Html.ValidationSummary(bool)

摘要

对ValidationSummary是HtmlHelper的扩展方法,用来返回 System.Web.Mvc.ModelStateDictionary (即ModelState)对象中的验证消息的未排序列表(ul 元素)。

一个例子

@Html.ValidationSummary(true):告知辅助方法排除属性级别的错误。换而言之,就是告知ValidationSummary方法只显示ModelState中与模型本身相关的错误,而不显示那些与具体模型属性相关的错误。false,会显示当前模型的所有错误。

定义

 //
        // 摘要: 
        //     返回 System.Web.Mvc.ModelStateDictionary 对象中验证消息的未排序列表(ul 元素),还可以选择仅显示模型级错误。
        //
        // 参数: 
        //   htmlHelper:
        //     此方法扩展的 HTML 帮助器实例。
        //
        //   excludePropertyErrors:
        //     true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。
        //
        // 返回结果: 
        //     一个字符串,其中包含验证消息的未排序列表(ul 元素)。
        public static MvcHtmlString ValidationSummary(this HtmlHelper htmlHelper, bool excludePropertyErrors);
 true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。

测试

        public ActionResult Test()
        {
            ModelState.AddModelError("", "这是一个错误");
            ModelState.AddModelError("Name", "无名很有名,但必须写");
            return View();
        }
    <div>
            @Html.ValidationSummary(true)
    </div>

结果

如果修改为false

通过这两种情况,也说明

true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。

总结

第一个是模型级错误,因为代码中错误没有提供与特定属性关联的键(或一个空键)。第二个是与Name属性相关联的错误,所以在true的情况下,是不会显示的,除非将参数Name删除,或者改为false。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET MVC框架提供了一种简单而强大的方式来创建登录和注册页面。以下是一个简单的示例代码: 在Controllers文件夹中创建一个名为AccountController的控制器,其中包含以下方法: ```csharp public class AccountController : Controller { // 注册页面 public ActionResult Register() { return View(); } [HttpPost] public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { // 在这里处理用户注册逻辑,例如将用户信息存储到数据库中 // 注册成功后,可以重定向到登录页面或其他页面 return RedirectToAction("Login"); } // 如果模型验证失败,返回注册页面并显示错误信息 return View(model); } // 登录页面 public ActionResult Login() { return View(); } [HttpPost] public ActionResult Login(LoginViewModel model) { if (ModelState.IsValid) { // 在这里处理用户登录逻辑,例如验证用户名和密码 // 登录成功后,可以重定向到用户的个人资料页面或其他页面 return RedirectToAction("Profile"); } // 如果模型验证失败,返回登录页面并显示错误信息 return View(model); } // 用户个人资料页面 public ActionResult Profile() { return View(); } } ``` 在Views文件夹中创建一个名为Account的文件夹,并在该文件夹下创建以下视图文件: 1. Register.cshtml ```html @model RegisterViewModel @using (Html.BeginForm("Register", "Account", FormMethod.Post)) { @Html.ValidationSummary() <div> @Html.LabelFor(m => m.Username) @Html.TextBoxFor(m => m.Username) @Html.ValidationMessageFor(m => m.Username) </div> <div> @Html.LabelFor(m => m.Password) @Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password) </div> <input type="submit" value="Register" /> } ``` 2. Login.cshtml ```html @model LoginViewModel @using (Html.BeginForm("Login", "Account", FormMethod.Post)) { @Html.ValidationSummary() <div> @Html.LabelFor(m => m.Username) @Html.TextBoxFor(m => m.Username) @Html.ValidationMessageFor(m => m.Username) </div> <div> @Html.LabelFor(m => m.Password) @Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password) </div> <input type="submit" value="Login" /> } ``` 3. Profile.cshtml ```html <h2>Welcome to your profile!</h2> ``` 上述代码中的`RegisterViewModel`和`LoginViewModel`是视图模型,用于封装注册和登录表单中的数据。 这只是一个简单的示例,你可以根据自己的需求来修改和扩展。同时,你还需要在全局.asax文件中配置路由规则,以便正确地处理请求。 希望这能帮到你!如果有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值