【问题标题】:Pass a value to a partial view from parent view将值从父视图传递给局部视图
【发布时间】:2021-07-30 14:07:47
【问题描述】:

我有一个 Web 应用程序,其中我的控制器将模型传递给父视图,如下所示:

 public ActionResult Results()
 {
     //Processing

     return View ("ParentView",model);
 }

在我的“ParentView”中,我会像这样渲染一个局部视图:

 @Html.Partial("_PartialView", anotherModel)

现在我根本不想碰anotherModel

但我想做的是从ParentView_PartialView 传递一个值。

我知道我可以将类似 ViewBag.Value="Text" 的东西从 Controller 传递给 "ParentView",但是类似的东西从 "ParentView""_PartialView" 是否可行?

基本上,我想在"ParentView" 使用的model 中添加一个值,然后以某种方式将其传递给"_PartialView"

【问题讨论】:

  • 带有标签 [model][controller] 和 [core](与 [.net] 无关),你的意思是像 asp.net-core-mvc 这样的吗?

标签: c# asp.net asp.net-mvc asp.net-core .net-core


【解决方案1】:

您必须创建一个视图模型。您可以通过 3 种方式创建它

第一种方式

public class ViewModel
{
public class ParentViewModel {get; set;}
public class ChildViewModel {get; set;}
}

在这种情况下你的观点

@model ViewModel
 
    
...... //html is using @Model.ParentViewModel)

  @Html.Partial("_PartialView", @Model.ChildViewModel)

第二种方式

public class ParentViewModel:ChildViewModel

在这种情况下,相同的模型可以用于两者

@model ParentViewModel
 
    
...... //html is using @Model)

  @Html.Partial("_PartialView")

如果可以使用接口到另一个模型,则可以使用第三种方式

局部视图

@model IAnotherModel

视图模型

public class ViewModel:IAnotherModel

查看方式同第二种方式

【讨论】:

  • 感谢您的回答
【解决方案2】:

您可以将属性从您的PageView 模型传递给您的PartialView,如下所示:

@Html.Partial("_PartialView", @Model.AnotherModel)

然后将_PartialView 的模型设置为AnotherModel 的类型。

【讨论】:

    猜你喜欢
    • 2013-12-19
    • 2019-11-14
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多