2017-08-24 117 views
0

我有一塊剃刀代碼如下所示:ValidationMessage是顯示在頁面加載

<div class="form-group"> 
    @Html.Label("State", new { @class = "control-label col-md-4" }) 
    <div class="col-md-8"> 
     <div class="tt-container"> 
      @Html.Editor("StateName", new { htmlAttributes = new { @id = "StateName", @class = "form-control", @required="required" } }) 
     </div> 
     @Html.ValidationMessage("StateName", "The State field is required", new { @class = "text-danger" }) 
    </div> 
</div> 

驗證消息The State field is required是顯示在頁面加載。我只希望在用戶嘗試提交表單時該消息顯示該文本框是否爲空。

如果我這樣做:

@Html.ValidationMessage("StateName", "", new { @class = "text-danger" }) 

那麼很明顯,我看不出有任何的驗證信息,因爲它是空的,但是當我點擊提交,並且文本框爲空,我得到一個驗證消息說This field is required

我在尋找2種可能性中的1種。

第一個問題,如果相應的文本框是空的,我可以在提交按鈕之後顯示驗證消息嗎?

第二個問題,我可以得到這個錯誤信息是更像The State field is required描述性?

任何幫助表示讚賞。

回答

1

你可以使用這個ValidationMessage輔助方法過載

@Html.ValidationMessage("StateName") 

驗證消息將是通過在形式模型驗證框架生成的消息「{propertyName的}需要」

+0

我知道,這但它需要在模型中使用強類型屬性。我所擁有的僅僅是一個簡單的文本框,當輸入內容時,該值綁定到一個隱藏的元素 –

+0

'StateName'不是一個強類型屬性。只是一個供用戶查看的文本框,但該值綁定到強類型的hiddenfor元素 –

+0

您也可以使用'ValidationMessage'輔助方法的相同內容。使用帶有主要名稱的過載。查看更新後的答案。 – Shyju