当UnobtrusiveJavaScriptEnabled为true时,验证无法正常工作

时间:2011-12-05 17:37:56

标签: asp.net-mvc validation web-config

在我的应用程序中,我使用clienside验证来验证从部分视图呈现的特定控件。部分视图编码:

   <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。然后我把我的控制部分。现在它的工作。但这不是正确的方法。我想以适当的方式做到这一点。

对此有任何想法。

抱歉,当我在UnobtrusiveJavaScriptEnabled = true的局部视图中使用html begin form时,我忘记了一件事。那个时候也有效。

2 个答案:

答案 0 :(得分:1)

确保您的字段位于表单内,因为如果字段不在表单内,则不会呈现验证消息。

如果不是原因,请向我们展示您在此字段中使用的验证属性。

编辑:可能很明显,但请检查是否正在加载不显眼的.js脚本。将链接放在要验证字段的位置以确认它。

编辑2 :查看生成的html代码。检查验证消息是否正在生成。为了找到问题,Rick Anderson的想法似乎也是一个很好的起点。

答案 1 :(得分:1)

查看工作版本和非工作版本的视图源并进行比较。那会告诉你你做错了什么。部分视图应该与包含部分标记的视图没有区别。

相关问题