我有一个返回视图的控制器。
在视图中,我渲染一个公共的共享局部视图,并将参数传递给它:
<div class="tab-pane" id="tab-sla">@{Html.RenderPartial(
"./_sla",
new
{
ContentTitle = "Service Level"
});
}
</div>
但是,在部分视图_sla
中,我尝试访问属性ContentTitle时,会抛出错误'object' does not contain a definition for 'ContentTitle'
。
如果我使用@Model.ToString()
转储模型属性,则会显示{ ContentTitle = "Service Level" }
。
有人可以告诉我我做错了什么以及如何解决这个问题?
答案 0 :(得分:0)
这可能有所帮助(取自this SO答案,感谢卢卡斯):
根据David Ebbo的说法,你不能将匿名类型传递给 动态类型视图,因为匿名类型被编译为 内部。由于CSHTML视图被编译成单独的程序集, 它无法访问匿名类型的属性。
访问模型属性时,您也可以尝试使用ViewData
。有时帮助我:
<h1>@ViewData["ContentTitle"]</h1>
希望这有帮助。
答案 1 :(得分:0)
有关详细信息,请在此处查看问题和答案:
MVC Razor dynamic model, 'object' does not contain definition for 'PropertyName'
基本上,它停止工作的最可能原因是因为你在同一文件夹中有另一个视图,其模型类型不可解析。
使用损坏的模型类型更正违规视图,清理并重建解决方案,它应该再次起作用。