问题描述
#background-image {
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-position: center center;
height:100vh;
}
.container {
display: flex;
align-items: center;
justify-content: center;
height:100%;
}
我的部分视图以
开头@{Html.RenderPartial("~/Features/MainPage/_MyPartialView.cshtml",Model.PartialViewviewmodel); }
@Html.HiddenFor(x => x.Model.someProperty)
问题是,视图中 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)