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

| 我有条件的内容,根据条件使用jQuery,我在表单元素中包括或排除了这部分。 这是我的功能:
function MoveInsideForm(id) {
       $(\"#\" + id).insertAfter(\"#myForm\")
   }

function MoveOutsideForm() {
       $(\"#myPartial1\").insertAfter(\"#element-outside-from\");
       $(\"#myPartial2\").insertAfter(\"##element-outside-from\");
   }
问题出在ѭ1上,它没有被复制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=\"\"/>
我也可以对“ 1”说什么来复制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。     

要回复问题请先登录注册