相关疑难解决方法(0)

ASP.NET MVC 2中的动态范围验证

我正在使用ASP.NET MVC2并尝试使用System.ComponentModel.DataAnnotations命名空间中的属性验证我的视图模型.

如何动态设置RangeAttribute的允许有效范围?例如,如果我想验证输入的日期是否在预期范围内.

这不编译:

[Range(typeof(DateTime), 
        DateTime.Today.ToShortDateString(), 
        DateTime.Today.AddYears(1).ToShortDateString())]
    public DateTime DeliveryDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

因为"属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式".

我是否需要求助于创建自己的自定义验证器?

validation asp.net-mvc

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

以编程方式更改验证范围(MVC3 ASP.NET)

假设我有这个视图模型:


    public class MyModel
    {
        [Range(0, 999, ErrorMessage = "Invalid quantity")]
        public int Quantity { get; set; }
    }

现在,对于此模型的特定实例,有效值的范围将更改:某些可能不会为0,有些可能不会高于5.有效范围的最小值/最大值来自数据库,可以随时更改.

如何动态更改RangeAttribute的最小/最大属性?或者它是验证我的场景的最佳方式?

validation asp.net-mvc asp.net-mvc-3

11
推荐指数
1
解决办法
6077
查看次数

如何在Razor页面中添加自定义验证?

我是第一次使用MVC 4.我的业务逻辑有点复杂,但我想不会那么罕见.我有可以在特定范围内调整大小的项目.范围取决于项目.

public class MyItem
{
    public double Width { get; set; }

    public double MinWidth { get; set; }

    public double MaxWidth { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

CustomWidth当用户设置时必须在内部MinWidth并且MaxWidth包含在内.这似乎是一个常见的问题.我已经尝试了该CustomValidation属性,但它只在我尝试将实体保存到我的数据库时才使用(使用实体框架).

这是我正在使用的Razor页面.

@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) { 
<aside id="aside">
    <div class="editor-label">
        @Html.LabelFor(model => model.Width)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Width)
        @Html.ValidationMessageFor(model => model.Width)
    </div>  

    <div class="editor-label">
        @Html.LabelFor(model => model.Height)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Height)
        @Html.ValidationMessageFor(model => model.Height)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Depth)
    </div> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor

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

按条件更改ASP.NET MVC 3中的属性的验证

这是我的模特:

[RegularExpression(@"^08[589][0-9]{8}$", ErrorMessage = "Invalid Number!")]
public string Phone { get; set; }

[ForeignKey]
public long PhoneType { get; set; } // 1-CellPhone , 2-Phone
Run Code Online (Sandbox Code Playgroud)

所以如果我想说更具体的话,我想改变RegularExpressionValidation by Change PhoneType:

如果用户CellPhoneDropDownList验证中选择

[RegularExpression(@"^08[589][0-9]{8}$", ErrorMessage = "Invalid Number!")] 
Run Code Online (Sandbox Code Playgroud)

如果选择Phone验证

 [RegularExpression("^[1-9][0-9]{9}$", ErrorMessage = "Invalid Number!")]
Run Code Online (Sandbox Code Playgroud)

你的建议是什么?

validation asp.net-mvc validationattribute asp.net-mvc-3

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