从局部视图访问父模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从局部视图访问父模型相关的知识,希望对你有一定的参考价值。
我问,因为我将创建的部分视图是空白的,目的是创建一个新的子实体。我只需要一个快速的,无论是否脏的方式从局部视图中访问父模型。我需要父母的身份证明。
部分视图是否可以自动访问父模型?
答案
除非在渲染时将某些值作为参数传递给此部分,否则无法从局部视图访问父模型。例如,在您的主视图中:
@model MyViewModel
...
@html.Partial("_myPartial", new ViewDataDictionary(new { id = Model.Id }));
然后在你的部分内你可以访问Id
:
<div>@ViewBag.Id</div>
当然,这是将数据传递到局部视图的一种非常糟糕的方式。正确的方法是使用强类型视图模型。
另一答案
我知道这是一个古老的话题,但我认为我只是将我的解决方案添加到同样的问题中。我觉得它有点清洁。
基本上将模型添加到局部视图中。
封装视图:
@model whatever
...
@Html.Partial("partialview", anotherwhatever)
局部视图:
@model anotherwhatever
<div>@Model.something</div>
...
在我的情况下,我只需要将一个字符串传递给局部视图(只是使用它来缩短和分区代码),所以这比其他解决方案更优雅。
我首先尝试了另一个解决方案,实际上无法让它工作,它只是表现为我传递的值是空白的。
另一答案
这最终为我工作。
@model MyViewModel
...
@Html.Partial("_myPartial", new ViewDataDictionary { { "id", Model.Id } })
在局部视图中,使用了这个......
<div>@ViewBag.id</div>
以上是关于从局部视图访问父模型的主要内容,如果未能解决你的问题,请参考以下文章