列出并在同一视图中提交。这怎么可能?

时间:2011-10-10 14:32:35

标签: asp.net-mvc-3

我目前正在使用mvc 3 razor开发一个网站,但有一点问题。我想创建一个包含提交表单和列表的视图。 “添加产品”和“产品列表”应该在同一视图中。首先,我认为部分观点将是解决方案,但无法弄清楚如何使其发挥作用。不知道如何将对象(产品)列表传递给局部视图。 有人知道如何解决我的问题吗?

3 个答案:

答案 0 :(得分:1)

的MainView - 型号:

public MainViewModel{

      public IList<Product> AvailableProducts{
           get; set;
      }
      public IList<Product> SelectedProducts{
           get; set;
      }
}

MAINVIEW:

 @Html.RenderPartial("_SelectedProductsPartial", Model.SelectedProducts)  

部分视图:

 @model IList<Product>

控制器:

 public ActionResult MainView(){

 MainViewModel model = new MainViewModel();
 model.AvailableProducts = ...;
 model.SelectedProducts = ...;

 return View(model);

答案 1 :(得分:1)

您尝试完成的内容不需要部分内容,但它们可以帮助您解决问题。

要回答您的问题,您可以将对象作为第二个参数传递给强类型的局部视图,如下所示:

@Html.Partial("_MyPartialName", Model.ThingIWantToPass)

在此示例中,这将是与Model.ThingIWantToPass相同类型的强类型部分。

答案 2 :(得分:0)

显示部分

// In your action method
IList<ProductViewModel> productListViewModel = new List<ProductViewModel>();
return PartialView(productListViewModel);


//Your view model:


@model IEnumerable<YourNamespace.WebUI.Models.ProductViewModel>

@for(int i = 0; i < Model.Count(); i++){
   // Assuming your product has a name property
   @Html.DisplayFor(model => model.Name);
}