@ Html.Partial的重载需要一个模型,所以在“主”视图中我放入了this.model:
@Html.Partial("_GenericIndex", this.Model )
我尝试将@Model放在局部视图中以查看是否有任何显示,但我什么都没有。
那么,如何在局部视图中使用this.Model参数?我已经看到了一些可怕的解决方案,特别是在viewdata或其他东西的部分视图中。当然没有必要吗?
我只想访问我输入的Html.Partial参数。
顺便说一下,我的控制器和动作是这样的:
public class TestController : Controller
{
IRepository<Customer> customerrepo = RepositoryFactory.GetRepository<Customer>();
//
// GET: /Test/
public ActionResult Index()
{
Customer cust = customerrepo.GetByID("1");
return View(cust);
}
}
答案 0 :(得分:3)
只需将此行放在部分视图的顶部:
@model Customer
然后,您可以在局部视图中使用@Model
,它将代表您在@Html.Partial("_GenericIndex", Model)
来电中传递的对象。
即使你可以调用@ Html.Partial(“_ GenericIndex”),它会将当前页面的模型传递给部分页面。
答案 1 :(得分:1)
您是否在局部视图中设置了模型类型?
@{
var model = ViewContext.Controller.ViewData.Model as Customer;
}