在ASP.NET Core MVC项目中,假设我有两个部分视图_viewA
和_viewB
以及两个关联模型ModelA
和ModelB
。 BR />
并说ModelA
和ModelB
都有一个名为MyProperty
的属性。
然后在_viewA
和_viewB
中使用asp-for="MyProperty"
。
我的问题是我的页面最终有两个具有相同ID的html元素
我怎么能避免这种情况?
请注意,我不想重命名MyProperty,因为我的模型不应该关心UI限制。
答案 0 :(得分:2)
转到@stephen-muecke以及此post我已用public static IHtmlContent PartialFor(this IHtmlHelper helper, string partialViewName, string prefix)
{
var viewData = new ViewDataDictionary(helper.ViewData);
var htmlPrefix = viewData.TemplateInfo.HtmlFieldPrefix;
viewData.TemplateInfo.HtmlFieldPrefix += !Equals(htmlPrefix, string.Empty) ? $".{prefix}" : prefix;
return helper.Partial(partialViewName, viewData);
}
解决了问题。这是一个与.Net Core一起使用的扩展方法,可以在{{1}}中使用。然后,局部视图中的所有ID和名称都带有前缀(即使不使用{{1}})。
{{1}}