c# - htmlFieldPrefix 打破局部视图之外的名称
问题描述
我有一个视图,其中包含以下代码段:
@{Html.RenderPartial("~/Features/MainPage/_MyPartialView.cshtml", Model.PartialViewViewModel); }
@Html.HiddenFor(x => x.Model.SomeProperty)
我的部分观点始于
@model PartialViewViewModel
@{
Html.ViewData.TemplateInfo.HtmlFieldPrefix = "PartialViewViewModel";
}
问题是,视图中的 HiddenProperty 名称也是使用部分视图的前缀生成的。它是“PartialViewViewModel.SomeProperty”而不是“SomeProperty”。在某些地方切换 hiddenfor 和部分视图可以解决问题(名称变为“SomeProperty”)。有没有办法为部分视图隔离 HtmlFieldPrefix?
解决方案
您可以尝试添加
@{
Html.ViewData.TemplateInfo.HtmlFieldPrefix = "";
}
进入包含部分视图的视图。
这是一个演示:
楷模:
public class ParentModel
{
public PartialViewViewModel PartialViewViewModel { get; set; }
public string SomeProperty { get; set; }
}
public class PartialViewViewModel
{
public int Id { get; set; }
}
_MyPartialView.cshtml:
@{
Html.ViewData.TemplateInfo.HtmlFieldPrefix = "PartialViewViewModel";
}
@Html.TextBoxFor(m=>m.Id)
包含 _MyPartialView 的视图:
@{
Html.ViewData.TemplateInfo.HtmlFieldPrefix = "";
}
@model ParentModel
@{Html.RenderPartial("_MyPartialView.cshtml", Model.PartialViewViewModel); }
@Html.HiddenFor(x => x.SomeProperty)
推荐阅读
- excel - 无法在 excel 公式中提交部分查询(无法使用 VBA)
- azure-data-explorer - 您可以使用变量来定义 Kusto 查询中的列名吗?
- methods - 阻塞方法执行直到异步 RxJava 调用返回
- c# - EF、SQL Server - 连接超时已过期。登录后阶段超时时间已过
- node.js - pm2 nodejs在集群模式下断开与数据库的连接-i 2
- python - 使用 access_token 向 Facebook 的 Graph API 发出 POST 请求
- asp.net-mvc - AspNetIdentity 中的 PasswordSignInAsync 方法抛出无效格式异常
- c# - C# .NET httpClient 响应
- google-app-engine - Google App Engine 和 Stackdriver 调试:找不到 /tmp/debugger-breakpoints 文件
- excel - 以下代码行之间的区别