2011-12-05 25 views
2

在我的應用程序,我使用clienside驗證要驗證的是從局部view.Partial視點編碼呈現特定的控制:驗證工作不正常而UnobtrusiveJavaScriptEnabled是真的

<fieldset> 
    <div> 
     <div> 
     <%= Html.LabelFor(model => model.OrderID) %> 
    </div> 
    <div class="editor-field"> 
     <%=Html.DisplayFor(model => model.OrderID)%> 
     <%= Html.TextBoxFor(model => model.OrderID) %> 
     <%= Html.ValidationMessageFor(model => model.OrderID) %> 
    </div> 
    </div> 
    <fieldset> 

渲染這個局部視圖之後。我用表單添加了這個。

及其工作不正常(因此未顯示的錯誤消息)時的控制是呈現局部視圖。 然後我在正常的視圖渲染這個控件它的工作正常。

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

我設置UnobtrusiveJavaScriptEnabled爲false後。然後我把我的控制部分。現在它的工作。但它不是正確的方式,我想以適當的方式做到這一點。

對此有任何想法。

對不起,我忘了一件事時,我使用的HTML開始與UnobtrusiveJavaScriptEnabled =真內部局部視圖形式。那個時候它也在工作。

+0

請提高您接受的答案比率。 – Jonathan

+0

@Jonathan Yeah。你需要給110%! – Dismissile

回答

1

確保您的字段位於表單內,因爲如果字段不在表單內,驗證消息不會呈現。

如果不是這個原因,請向我們展示您在此字段中使用的驗證屬性。

編輯:也許很明顯,但檢查是否正在加載unobstrusive .js腳本。將鏈接放置在字段正在驗證的位置以確認它。

編輯2:查看生成的HTML代碼。檢查驗證消息是否生成蜂鳴。裏克安德森的想法似乎也是找到問題的好起點。

+0

嗨喬納森,感謝您的更新我檢查字段是在窗體內。 > [必需(ErrorMessage =「需要訂單ID」)] public int訂單ID { get; 集; } – YogeshWaran

+0

我檢查了腳本完美加載。有任何其他建議 – YogeshWaran

1

爲工作版本和非工作版本做一個查看源並進行比較。這會告訴你你做錯了什麼。部分視圖應該與包含部分標記的視圖不同。