加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC 3.0部分内部和外部表单具有不显眼的数据验证属性问

发布时间:2020-12-16 06:45:52 所属栏目:asp.Net 来源:网络整理
导读:我有条件内容,根据条件使用jQuery我包括或从表单元素中排除这些部分. 这是我的功能: function MoveInsideForm(id) { $("#" + id).insertAfter("#myForm") }function MoveOutsideForm() { $("#myPartial1").insertAfter("#element-outside-from"); $("#myPar
我有条件内容,根据条件使用jQuery我包括或从表单元素中排除这些部分.

这是我的功能:

function MoveInsideForm(id) {
       $("#" + id).insertAfter("#myForm")
   }

function MoveOutsideForm() {
       $("#myPartial1").insertAfter("#element-outside-from");
       $("#myPartial2").insertAfter("##element-outside-from");
   }

问题是insertAfter()它不会被复制HTML 5自定义属性

例如,我有一个这样的元素

<input data-val="true" data-val-required="*" id="MyInput" name="MyInput" type="text" value="" class="input-validation-error"/>

但insertAfter()复制它是这样的:

<input id="MyInput" name="MyInput" type="text" value=""/>

有什么方法可以说insertAfter()也可以复制HTML 5属性吗?
我的jQuery版本是1.6.1.

更新:

谢谢你的评论.
这是事情,当我在表单中渲染我的部分内容时,使用不显眼的数据属性生成输入,但如果我在表单外部渲染我的部分,那么不显眼的数据属性最初不会包含在输入中.

因此,当我在表单外部渲染部分时,它们最初不包含数据属性.
所以它不是jQuery insertAfter()的问题,是否是不显眼的数据验证属性生成的本质?

解决方法

为了生成不引人注意的验证,MVC必须具有FormContext.当您将HtmlHelper放在Html.BeginForm或Ajax.BeginForm之外时,除非您手动实例化FormContext,否则HtmlHelpers将不具有不显眼的验证属性.您可以通过在帮助程序之前插入以下代码来手动实例化FormContext:

this.ViewContext.FormContext = new FormContext();

如果您将助手放在BeginForm()之前,请确保在助手之后和开始表单之前清除FormContext.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读