【问题标题】:In MVC 3, how can I access the model from a partial view?在 MVC 3 中,如何从局部视图访问模型?
【发布时间】:2012-02-03 14:41:55
【问题描述】:

在我的应用程序中,我有两个视图,它们使用参数中给定的模型呈现相同的局部视图,如下所示:

在视图 1 中:

 @Html.Partial("_LayoutMyPartialView", new MyModel1())

在视图 2 中:

@Html.Partial("_LayoutMyPartialView", new MyModel2())

如何在局部视图中访问模型以处理数据?

更新

我的模型没有相同的结构。

【问题讨论】:

    标签: asp.net-mvc razor asp.net-mvc-partialview


    【解决方案1】:

    您将使用Model 关键字来访问您的模型,这样:

    Model.UserName
    

    会给你对象的 UserName 属性。

    确保您的局部视图也是强类型的:

    @model MyModel1
    

    【讨论】:

    • 如果在我的部分视图中我有这样的东西 Mo​​del.Items.Add(new MyModel());;我可以用什么代替'new MyModel()'?谢谢
    • 为什么要将新项目添加到视图中的集合中?
    • 做不到?我有一个动态表,它需要在视图上初始化
    • 查看我的更新,如果我强烈键入第一个模型的局部视图,则第二个模型数据无法正确呈现
    【解决方案2】:

    您的要求似乎非常不同。

    但这里仍然是一个推荐的设计来实现你想要的(基于最初的问题)

    1. 拥有一个包含 Model1 和 Model2 实例的 ViewModel,这样您就不必映射 2 个不同的对象。

      Public class MyViewModel
      

      { 公共 MyModel1 Model1Instance {get;set;} 公共 MyModel2 Model2Instance {get;set;} }

    稍后只需在您的视图中标记@model 使用这个单一的 ViewModel。当您通过控制器传递对象时,这将使您能够访问局部模型中的两个模型。

    【讨论】:

      猜你喜欢
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多