从局部视图访问父模型

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>

以上是关于从局部视图访问父模型的主要内容,如果未能解决你的问题,请参考以下文章

使用绑定从片段访问父活动的 UI 元素

从 recyclerview 的适配器访问父片段方法

如何使用视图绑定从片段更改父活动中的视图[重复]

我如何使用视图模型从另一个片段访问函数

片段的视图模型而不是访问活动视图模型?

将数据从局部视图传递到父视图