我在我的視圖中驗證了我的奇怪行爲。MVC3屬性驗證問題
我的模特擁有此屬性。
[Display(Name = "Overflow Capacity")]
[RegularExpression(@"[-+]?[0-9]*\.?[0-9]?[0-9]", ErrorMessage = "Number required.")]
[Range(0,9999.99,ErrorMessage = "Value must be between 0 - 9,999.99")]
public decimal OverFlowCapacity { get; set; }
我的看法有這樣的:
<tr>
<td>@Html.LabelFor(m=> m.OverFlowCapacity)</td>
<td>@Html.EditorFor(m=>m.OverFlowCapacity)</td>
<td> @Html.ValidationMessageFor(model => model.OverFlowCapacity)</td>
</tr>
如果我進入像「ABC」的值,我得到「所需數量」 確認消息。如果我輸入的999999值,我得到的驗證消息「值必須介於0 - 9,999.99之間'
這兩個消息都是在我按預期方式標籤出文本框時收到的。 當我將文本框的值保留空白並關閉標籤時,我無法獲得正常預期的錯誤。
但是,當我提交時,我收到一條驗證消息'需要溢出容量字段'。
我不知道這是從哪裏來的。我嘗試從模型中刪除所有驗證屬性,並仍然獲得「必需」消息。我很茫然。
這裏是我引用的腳本。
我有mvcfoolproof其他問題,我以後可能會發布。我想知道這是不是對我的問題負責。
恕我直言只需要的屬性將使沒有差異的錯誤消息,因爲你不重寫它 –
謝謝亞歷山大。我對MVC相當陌生,所以有時甚至是明顯的逃脫我。我只在閱讀答案的前兩行後才知道解決方案。 –
@穆罕默德你是正確的,它不會影響他已經得到的錯誤,但添加它會讓你看到驗證,一旦領域失去焦點,然後提交。我不確定傑夫是否想要這個錯誤,所以我把這個解決方案包括在內並將其刪除。 –