相关疑难解决方法(0)

字符串MinLength和MaxLength验证不起作用(asp.net mvc)

我有这门课

using System.ComponentModel.DataAnnotations;
using Argussoft.BI.DAL.Domain.Users;

namespace Argussoft.BI.DAL.DTOs.UserDTOs
{
    public class CreateUserDto
    {
        [Required(ErrorMessage = "??????? ?????")]
        [MaxLength(User.EmailLength, ErrorMessage = "???????????? ????? ?????? 40 ????????")]
        [RegularExpression(User.NameRegularExpression, ErrorMessage = "????? ????? ????????? ?????? ????????? ???????, ??????, ?????????????, ?????")]
        public string Name { get; set; }

        [Required(ErrorMessage = "??????? Email")]
        [MaxLength(User.EmailLength, ErrorMessage = "???????????? ????? ?????? ??????????? ????? 100 ????????")]
        [RegularExpression(User.EmailRegularExpression, ErrorMessage = "??????? ?????????? ????? ??????????? ?????")]
        public virtual string Email { get; set; }

        [Required(ErrorMessage = "??????? ??? ????????????")]
        [MaxLength(User.FullNameLength, ErrorMessage …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

Asp.net mvc dataannotation MaxLength验证不起作用

我在我的模型中使用asp.net mvc4我使用Maxlength属性但它不适用于字符串.只有Stringlength工作任何人都有同样的问题?如果有问题如何解决?它不适用于验证我的字段这是我的代码

(不工作)

[Required]
[MaxLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
Run Code Online (Sandbox Code Playgroud)

(工作)

[Required]
[StringLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc-4

19
推荐指数
2
解决办法
5万
查看次数

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万
查看次数

MVC 3和JQuery中的手动表单验证

我希望能够在用户选择"GO"按钮时在客户端触发表单验证.目前,当选择"GO"按钮时,它不会验证完整的表格.例如,如果我加载表单并选择"Go"按钮而不将焦点放在文本框中,则不会验证任何内容,并且val.Valid()返回true.如果我在文本框中输入了无效数据,则会对该单个项目进行验证; 当我选择"GO"按钮时,val.Valid()返回false.

所以我想要做的是,当用户选择一个按钮或其他事件时,我想触发所有表单验证.

我在MVC 3中这样做

public class TestValidationModel
{
    [Required(ErrorMessage="UserName Is Required")]
    [RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed")] 
    [StringLength(12, MinimumLength = 3)] 
    public string UserName { get; set; }

    [Required(ErrorMessage="Password Is Required")]
    [StringLength(20, MinimumLength = 3)] 
    public string Password { get; set; }

    [Required(ErrorMessage="Email Address Is Required")]
    [Display(Name = "Email Address")]
    public string EmailAddress{ get; set; }

}

<script src="/BasicMvc3Example2/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
<script src="/BasicMvc3Example2/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="/BasicMvc3Example2/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/BasicMvc3Example2/Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $("#butValidateForm").click(function(){

            var val …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate asp.net-mvc-3

14
推荐指数
3
解决办法
5万
查看次数

mvc3 maxLength输入

这可能是一般的但我想在editorfor字段中限制字符inpit的数量.

@html.EditorFor(m=>m.id,new {@maxlength="10"})
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.

asp.net-mvc editorfor asp.net-mvc-3

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

在没有模型的情况下在MVC 3中进行验证

我对mvc3中的验证有疑问.内置验证看起来很棒.但是,我必须在一个案例中使用javascript,导致它与外观和感觉不一致(警报窗口与漂亮的红色文本).我们有一个表单,其中包含一些用于用户输入的字段.提交时,一些ajax代码会触发一个链接,该链接映射到一个控制器方法,该方法接受从表单提交的值并启动导致创建客户端数据库的进程.问题是:对字段(长度,字符等)进行验证的最佳方法是什么,因为没有模型直接映射到该表单上的字段?我的解决方案是编写一些javascript函数,但是有更简洁的方法吗?

 <td>@Html.TextBox("NewClientId")</td>
...            

    <script language="javascript">
       function ValidateFieldLength(min, max, element) {
            var len = element.value.length;
            if (len < min || len > max)
                return false;
            else {
                return true;
            }
        }
        function createNewClient() {
            if (!ValidateFieldLength(3,3,document.getElementById('NewClientId'))) {
            alert("Invalid Client ID length");
            return;
        }
        $.ajax({
            url: '/api/Clients',
            type: 'PUT',
            data: JSON.stringify({
                ClientId: $('#NewClientId').val(),
                Name: $('#NewClientName').val()
            }),
            contentType: 'application/json; charset=utf-8',
            success: function (reponse) {
                //alert(reponse.data.model.Id);
                alert("Database created");
            },
            error: function (err) {
                alert(err);
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc c#-4.0 asp.net-mvc-4

4
推荐指数
1
解决办法
8216
查看次数

Validator忽略MaxLength属性

问题: 我试图手动验证一些c#对象,而Validator忽略了与字符串长度相关的验证.

测试用例: 扩展这个使用[Required]属性的例子,我也想验证字符串不是太长,如下所示.

public class Recipe
{
    //[Required]
    public string Name { get; set; }

    [MaxLength(1)] public string difficulty = "a_string_that_is_too_long";
}

public static void Main(string[] args)
{

    var recipe = new Recipe();
    var context = new ValidationContext(recipe, serviceProvider: null, items: null);
    var results = new List<ValidationResult>();

    var isValid = Validator.TryValidateObject(recipe, context, results);

    if (!isValid)
    {
        foreach (var validationResult in results)
        {
            Console.WriteLine(validationResult.ErrorMessage);
        } 
    } else {
        Console.WriteLine("is valid");
    }
}
Run Code Online (Sandbox Code Playgroud)

预期结果:错误:"难度太长."

实际结果: '有效' …

c#

4
推荐指数
1
解决办法
520
查看次数