我在开始表单之外的MVC视图中有一个字段的验证消息。但是它没有显示出来。
@Html.ValidationMessageFor(m => m.OldPassword)
我有可能实现这个目标吗?因为我不想使用Jquery或Javascript函数来验证这一点。
答案 0 :(得分:2)
它不是一个干净的解决方案,但技巧将起作用
答案 1 :(得分:1)
ValidationMessageFor
仅在字段/控件位于该控制器的表单后置操作内时才有效。否则需要执行JavaScript / Ajax / ViewBag
之类的单独方法来获取错误。
答案 2 :(得分:0)
仅当@Html.ValidationMessageFor(m => m.Property)
在表单内时才有效。但是,我设法找到一个解决方法,当有元素更改时,也会更新外部div,即错误消息更改而不重新提交表单:
<div id="outside-form"></div>
。<div id="inside-form" style="display:none;"></div>
,其中包含所有@Html.ValidationMessageFor(m => m.Property)
语句。 form: function() {.....}
并且在函数返回之前添加$("#outside-form").html($("#inside-form").html());
。这可以确保每次验证整个表单时都会更新您的outside-div。
element: function( element ) {.....}
并且在函数返回之前添加$("#outside-form").html($("#inside-form").html());
。这可以确保每次验证每个表单元素时都会更新outside-div。
那就是它!我想知道是否有某种方法可以扩展form
和element
对象而不更改.js文件本身。你对此有任何线索吗?