2011-09-19 75 views
0

我有這樣MVC 3.0:爲什麼沒有客戶端驗證消息?

public class SampleModel{ 
    public int No{get;set;} 
} 

模型和視圖我有一個自定義ValidationFor它顯示了這一領域的輸入框附近的星:

 @Html.EditorFor(model => model.No) 
     @Html.ValidationMessageWithStarFor(model => model.No) 

所以在渲染我有一個「*」接近告訴該字段是必需的輸入框。它在服務器端正常工作,但在客戶端不起作用。 儘管在web.confing啓用ClientValidation通過這些線路:

<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="false" /> 

...我怎樣才能啓用它?

回答

2

你可能忘了參考以下腳本在你的頁面中除了jQuery的:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
+0

不!我有這兩行:

+0

@Mahmoud Moravej,那麼可能您的自定義驗證助手不會生成正確的HTML5數據 - * DOM元素上的屬性。確保它生成與標準'ValidationMessageFor'助手相同的標記。更好的方法是使用標準的ValidationMessageFor幫助器來查看它是否有效。使用ValidationMessageFor的 –

+0

具有相同的結果! :-( –

0

的問題是,因爲下面的代碼:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; 

防止dataannotation驗證不可空類型。

+0

你在哪裏更換那條線? – Serge

+1

@Serge它應該在global.ascx.cs文件中,如果它不存在,自己添加它 –