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