当我创建一个新的MVC3应用程序时,添加一个模型,向模型添加[Required]
属性,为此模型构建一个新的编辑视图,并添加@Html.ValidationMessageFor(...)
,一切都很好。如果我尝试在不填写值的情况下提交编辑表单,则会向我提供验证消息。
我的问题是,这不适用于我正在处理的企业应用。这就是我所做的,我想知道你是否可以考虑我可以检查的其他任何问题。我无法分享代码,但也许你可以从列表中看到一个明显的遗漏......
[Required]
属性添加到我的模型的属性Html.EnableClientValidation(true)
和Html.EnableUnobtrusiveJavaScript(true)
@Html.ValidationMessageFor(...)
(@Html.TextBoxFor
)问题是我可以提交表单而不会执行验证。我收到一个服务器端错误,指出该实体无效,如果超过客户端验证,我会期望这样做。
当我检查源时,它没有将验证属性呈现给我的文本框。我希望它看起来像这样......
<input class="text-box single-line" data-val="true"
data-val-required="The Property1 field is required."
id="Property1" name="Property1" type="text" value="" />
但它看起来更像是......
<input id="Reminder_Description" name="Reminder.Description"
style="width:300px;" type="text" value="" />
究竟是什么责任注入这些属性?
谢谢!
答案 0 :(得分:1)
我想出了这个问题。我只是不知道属性没有通过服务层(WCF)传递,因此Required属性无效。为了解决这个问题,我们添加了一个对实体程序集的本地引用(这在我们的架构中是有意义的)。感谢。
答案 1 :(得分:0)
您是否检查过web.config:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />