我是ASP.NET MVC4的新手。 我有一个使用大量部分视图的应用程序,目前我有一个控制器,我用它来为每个部分返回PartialView,制作一个非常长的文件。
public PartialViewResult somePartial()
{
return PartialView("someParital");
}
public PartialViewResult someOtherPartial()
{
return PartialView("someOtherParital");
}
有没有办法创建一个可以为整个文件夹/目录返回PartialView的控制器?
谢谢,
答案 0 :(得分:1)
您可以使用Partial Views
将HTML Helper
直接呈现到标记中。最简单的方法是将每个Partial View
名称存储到List
某处,然后使用它来按名称呈现每个Partial View
。
@{
var myPartialViews = new string[] { "someParital", "someOtherParital" };
}
@foreach(string partialView in myPartialViews)
{
Html.Partial(partialView) //or Html.RenderPartial(partialView);
}
答案 1 :(得分:0)
您可以返回多个部分视图使用返回Json数据作为PartialView的字符串,如此处所述 https://stackoverflow.com/a/18978036/2318354
return Json(new { strPartial1 = RazorViewToString.RenderRazorViewToString(this, "someParital", model) , strPartial12 = RazorViewToString.RenderRazorViewToString(this, "someOtherParital", model2) });
现在,不要使用UpdateTargetId On Success函数,而是按照以下方式执行Ajax Request
@Ajax.ActionLink("Link-Name", "ActionName", "ControllerName", new AjaxOptions {OnSuccess = "scsFunction" })
on javaScript
function scsFunction(response) {
var temphtml1 = response.strPartial1 ;
var temphtml2 = response.strPartial2 ;
$("#dvPartial1").html(temphtml1);
$("#dvPartial2").html(temphtml2);
}
这样您就可以在一次行动呼叫时更新部分视图的数量