2014-12-13 54 views
4

我的模型有一個必需的字符串,我可以提交表單並仍將文本框留空,並且模型狀態返回爲有效,因此我不知道什麼是我做錯了。這是我的網頁上唯一一個正在執行此操作的控件。這裏是我的代碼:MVC中的必需值是空字符串,但modelstate仍然有效

型號

[Required(ErrorMessage = "Requirements are Required.")] 
[DataType(DataType.MultilineText, ErrorMessage = "Requirements is Required.")] 
[StringLength(200, ErrorMessage = "200 Characters is the maximum allowed for requirements.")] 
public string Requirements { get; set; } 

查看

<div class="form-group"> 
    @Html.LabelFor(model => model.Requirements, "Requirements:", htmlAttributes: new { @class = "col-sm-4 control-label" }) 
    <div class="col-sm-8"> 
     @Html.TextAreaFor(model => model.Requirements, htmlAttributes: new { @rows = "10", @cols = "50", @class = "form-control" }) 
     @Html.ValidationMessageFor(model => model.Requirements) 
    </div> 
+1

您是否已經完成了一項測試,以查看是否有其他屬性可能存在干擾? (即只有'[Required]'屬性) – Jaans 2014-12-13 08:47:46

+0

還沒有。我現在會嘗試 – user3610374 2014-12-13 08:48:36

+2

我無法重現這一點。將顯示驗證消息,並且不會提交表單。 – 2014-12-13 08:55:47

回答

2

編輯
作爲@Stephen Muecke指出,我不能重現你的情況都不是,它應該是足夠的必需屬性。 以某種方式回答我的答案如@MajkeloDev所述的解決方法。


你應該把MinimumLength = 10爲你的領域。數200表示最大長度爲您的字符串

[StringLength(200, MinimumLength = 10, ErrorMessage = "200 Characters is the maximum allowed for requirements.")] 

注意:M inimumLength = 10正在爲一個有意義的輸入一些數字。對於非空字符串就足夠了MinimumLength = 1

+2

OP是否說過這個字符串不能少於10個字符? – MajkeloDev 2014-12-13 09:09:10

+0

我可以爲我做這個工作 – user3610374 2014-12-13 09:24:14

+1

@MajkeloDev因爲'HelloWorld'的長度是10. – 2014-12-13 09:41:10

相關問題