我是MVC新手,我想在视图中弹出一个局部视图,但我想知道如何提供局部视图的模型。
<div id="enumsDialog" class="dialog">
@Html.Partial("~/Views/Enumeration/List.cshtml", [it needs a modal here])
</div>
换句话说,我希望局部视图能够处理自己的控制器。
如何实现?
答案 0 :(得分:1)
如果您想渲染其动作/数据来自不同控制器的局部视图,那么您可能希望使用RenderAction方法:
@Html.Action("MyAction", "MyController")
如果您想使用当前viewmodel中的数据呈现部分视图(无需再提出应用程序请求),请使用RenderPartial方法:
@Html.Partial("NameOfView", Model.WhateverYouArePassing)
答案 1 :(得分:1)
最简单的方法是:
public class EnumerationController : Controller {
// other actions...
public ActionResult List(){
// TODO: var model = retrieve-your-model-here
return PartialView(model);
// using "PartialView" instead of "View" method ensures this action isn't
// responsible from direct requests
// Also you can use "PartialViewResult" class as a return-type instead
// of "ActionResult" in method, like "List2()" method below:
}
public PartialViewResult List2(){
// TODO: var model = retrieve-your-model-here
return PartialView(model);
}
}
并在.cshtml
档案中:
@{Html.RenderAction("List", "Enumeration");}
// or:
@Html.Action("List", "Enumeration")