gpt4 book ai didi

asp.net-mvc - ASP.NET MVC3 EditorTemplates 和 Name 属性

转载 作者:行者123 更新时间:2023-12-04 05:17:57 24 4
gpt4 key购买 nike

我在我的代码中使用了编辑器模板,我注意到很多控件都根据索引获取 name 属性集。

@Html.EditorFor(x => x.Emails)

其中 Answers 是 EmailViewModel 对象的集合

对于每个项目,渲染的内容是这样的:
<input data-val="true" data-val-number="The field must be a number." 
data-val-required="The Email field is required."
id="Emails_0__EmailId" name="Emails[0].EmailId" value="1">

我尝试像这样设置 name 属性:
@Html.TextBoxFor(x => x.EmailId, new { @name = "EmailAdress" })

但这没有效果!

我需要做什么才能使名称值生效。这样做的主要原因是为了验证目的。在我的验证规则中,我有以下内容:
$("#someForm").validate({
rules: {
EmailAddress: {
required: true,
email: true
}
}
});

最佳答案

试试

@Html.EditorFor(x => x.Emails, "string", "EmailAddress") //or EmailAdress

MSDN reference有以下,您感兴趣的 htmlFieldName
public static MvcHtmlString EditorFor<TModel, TValue>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression,
string templateName,
string htmlFieldName
)

一个字符串,用于消除为具有相同名称的属性呈现的 HTML 输入元素的名称。

要编辑前缀,您可以在 Controller 中设置它
ViewData.TemplateInfo.HtmlFieldPrefix

或者在你看来
@Html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "Foo"

当然,您可以编写自己的助手,无论您在何处使用它,都可以执行此操作。

关于asp.net-mvc - ASP.NET MVC3 EditorTemplates 和 Name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com