相关疑难解决方法(0)

MaxLength属性不生成客户端验证属性

我对ASP.NET MVC3客户端验证有一个奇怪的问题.我有以下课程:

public class Instrument : BaseObject
{
    public int Id { get; set; }

    [Required(ErrorMessage = "Name is required.")]
    [MaxLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看:

<div class="editor-field">
    @Html.EditorFor(model => model.Name)
    @Html.ValidationMessageFor(model => model.Name)
</div>
Run Code Online (Sandbox Code Playgroud)

这是我为此字段的文本框获取的生成的HTML:

<input class="text-box single-line" data-val="true" data-val-required="Name is required." id="Name" name="Name" type="text" value="">
Run Code Online (Sandbox Code Playgroud)

没有迹象MaxLengthAttribute,但其他一切似乎都在起作用.

有什么想法会出错吗?

c# validation asp.net-mvc model-validation asp.net-mvc-3

77
推荐指数
4
解决办法
11万
查看次数

MVC3 jquery验证MinLength过滤器无法正常工作

我在我的模式中有这个:

[Required(AllowEmptyStrings = false, ErrorMessageResourceType = typeof(Registration), ErrorMessageResourceName = "NameRequired")]
[MinLength(3, ErrorMessageResourceType = typeof(Registration), ErrorMessageResourceName = "NameTooShort")]
public String Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

最终结果如下:

    <div class="editor-label">
        <label for="Name">Name</label>
    </div>
    <div class="editor-field">
        <input class="text-box single-line" data-val="true" data-val-required="Name is required" id="Name" name="Name" type="text" value="" />
        <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
    </div>
Run Code Online (Sandbox Code Playgroud)

为什么MinLength会被编译器忽略?我怎么能"开启"?

asp.net-mvc jquery-validate asp.net-mvc-3

16
推荐指数
3
解决办法
1万
查看次数

使用StringLength属性的参数

通常为ASP.NET MVC 3 Membership生成的代码,特别是NewPassword类的属性ChangePasswordModel看起来大致如下:

    [Required]
    [StringLength(100, MinimumLength=6)]
    [DataType(DataType.Password)]
    [Display("Name = CurrentPassword")]
    public string NewPassword { get; set; }
Run Code Online (Sandbox Code Playgroud)

为了用我正在使用的外部参数填充一些信息RecourceType:
(在这种情况下,我正在更改OldPasswordDisplay使用资源中的一些其他数据填充属性

    [Required]
    [DataType(DataType.Password)]
    [Display(ResourceType = typeof(Account), Name = "ChangePasswordCurrent")]
    public string OldPassword { get; set; }
Run Code Online (Sandbox Code Playgroud)

回到NewPassword.我怎么能代替MinimumLenghtMembership.MinRequiredPasswordLength:我的尝试:

    [Required]
    [StringLength(100, MinimumLength=Membership.MinRequiredPasswordLength)] 
    [DataType(DataType.Password)]
    [Display(ResourceType=typeof(Account), Name= "ChangePasswordNew")]
    public string NewPassword { get; set; }
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式(http://msdn.microsoft.com/de-de/library/09ze6t76%28v=vs.90%29.aspx)

c# asp.net localization asp.net-membership asp.net-mvc-3

6
推荐指数
1
解决办法
6000
查看次数