小编Kra*_*ras的帖子

将错误消息添加到@ Html.ValidationSummary

我正在使用标准的MVC3 Razor视图和不显眼的Javascript验证,@Html.ValidationSummary用于在表单的顶部显示它们.如果标准验证(类似的东西[Required])通过,我会运行一些非常自定义的客户端验证,当用户点击提交按钮时会激活该验证.(验证查看了许多表单元素,以确保已经检查了它们的正确集合等,因此它不像仅为单个字段创建新的自定义验证器那么简单).

我希望我在那里构建的可能错误显示在ValidationSummary列表中,但我无法弄清楚如何让错误消息出现在那里.

unobtrusive-validation asp.net-mvc-3

26
推荐指数
2
解决办法
3万
查看次数

比较(密码)属性

我想使用下面的代码为新用户创建一个视图模型."User"类只包含我将持久保存到数据库的两个属性(现在简化); 视图模型添加"比较密码"字段,该字段仅在视图中使用.我更喜欢让视图模型直接使用"User"类,而不是重复"User"中定义的所有字段.

我的问题是如何在"ComparePassword"字段的[Compare]属性中正确引用"User.Password"?

public class User
{
   [Required]
   public string UserName { get; set; }

   [Required]
   [DisplayName("Password")]
   [DataType(DataType.Password)]
   public string Password { get; set; }
}
public class NewUserViewModel
{
    public User User { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [DisplayName("Re-enter Password")]
    [Compare("Password", ErrorMessage="Passwords must match")]
    public string ComparePassword { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

为"密码"和"ComparePassword"生成的HTML如下所示.

<input class="text-box single-line password" 
  data-val="true" 
  data-val-required="The Password field is required." 
  id="User_Password" 
  name="User.Password" 
  type="password" value="" />

<input class="text-box single-line password" 
  data-val="true" 
  data-val-equalto="Passwords must match" 
  data-val-equalto-other="*.Password"
  data-val-required="The Re-enter …
Run Code Online (Sandbox Code Playgroud)

passwords data-annotations asp.net-mvc-3

18
推荐指数
1
解决办法
2万
查看次数

MVC直接在单个对象上调用模型绑定器

有没有办法可以为单个对象调用模型绑定器?

我不想/需要自定义模型绑定器 - 我只想做这样的事情:

MyViewModel1 vModel1 = new MyViewModel1();
InvokeModelBinder(vModel1);

MyViewModel2 vModel2= new MyViewModel2();
InvokeModelBinder(vModel2);
Run Code Online (Sandbox Code Playgroud)

当我完成后,vModel1和vModel2的属性已经绑定到传入请求中的内容.由于我们的控制器/操作的编写方式,我不一定要在操作方法的输入列表中列出vModel1和vModel2(因为最终会有一个可能很长的视图模型列表,可以选择绑定).

model-binding viewmodel asp.net-mvc-3

8
推荐指数
2
解决办法
4016
查看次数