2013-08-24 59 views
0

如果有人輸入一個值,但如果他們沒有輸入任何內容,我需要控制一個最小長度的字段,我不希望表單告訴他們有一個最小值。指定最小長度,如果字段有數據

這是我有:

[Required] 
[StringLength(15, ErrorMessage = "Please supply at least {2} characters.", MinimumLength = 3)] 
[Display(Name = "Last name on account or first part of the company's name")] 
public string LastName { get; set; } 

我只需要爲它允許空格也或者,如果輸入的數據,要求它的3個字符..

任何建議一分鐘?

+0

** [你可以在這裏查一下。希望你會覺得它有用。](http://stackoverflow.com/questions/18276853/string-minlength-and-maxlength-validation-dont-work-asp-net-mvc/18276949#18276949)** –

+0

Similar: http://stackoverflow.com/questions/5487094/asp-net-mvc3-model-validation-string-is-null-or-if-not-has-min-length-of-x – SepehrM

回答

2

的問題是與StringLength屬性的驗證邏輯,也返回true的字符串null值,這裏的執行:

public override bool IsValid(object value) 
{ 
    this.EnsureLegalLengths(); 
    int num = value == null ? 0 : ((string) value).Length; 
    if (value == null) 
    return true; 
    if (num >= this.MinimumLength) 
    return num <= this.MaximumLength; 
    else 
    return false; 
} 

而且你使用的是沒有幫助的Required屬性: - )。

反正你能爲你的情況做的唯一的事情就是創建一個自定義屬性與你所需要的邏輯,這裏link驗證LastName一個MVC3例子,或者你可以嘗試使用Google,有很多的例子並不難實施。

+0

我所需要做的只是刪除所需的。忽視了它100次...感謝您的幫助! – ErocM

相關問題