在“视图”页面中显示部分页面

时间:2015-12-02 14:41:54

标签: c# asp.net-mvc asp.net-mvc-4 razor

我有一个Controller / ShoppingCart,它有一个Action Method Index(),我创建了一个强类型的索引视图页面,并使用了一个模型类

Project.Models.ShoppingCartViewModel

我有另一个控制器/详细信息,它有一个操作方法Confirm(),我创建了一个确认视图页面,它也是一个强类型并使用模型类

Project.Models.Confirm

现在我要做的就是创建一个Index()的部分视图,它将使用 @model Project.Models.ShoppingCartViewModel 并在确认右侧显示该部分页面查看页面。两者都是强类型视图。

1 个答案:

答案 0 :(得分:1)

您应该向Confirm <{1}}

类型的ShoppingCartViewModel视图模型添加新属性
public class Confirm
{
   public  ShoppingCartViewModel Cart {set;get;}
   //Other Properties of your viewmodel goes here
}

现在在确认视图中,调用Html.Partial帮助程序方法以呈现显示购物车的部分视图并传递Model.Cart属性。

@model Project.Models.Confirm
<h2>Confirm order</h2>
@Html.Partial("~/Views/ShoppingCart/_CartPartial.cshtml".Model.Cart)

假设您的部分视图位于~/Views/ShoppingCart/_CartPartial.cshtml位置。

确保正确初始化Cart属性以避免Null引用异常(对象引用未设置为对象实例)

public ActionResult Confirm()
{
  var vm = new Confirm();
  vm.Cart= new ShoppingCartViewModel();
  // Load the Shopping cart property values to vm.Cart
  return View(vm);
}