0

我对 ASP.NET MVC4 很陌生。我有一个使用大量局部视图的应用程序,目前我有一个控制器,用于为每个视图返回 PartialView,从而生成一个非常长的文件。

public PartialViewResult somePartial()
    {
        return PartialView("someParital");

    }
public PartialViewResult someOtherPartial()
    {
        return PartialView("someOtherParital");

    }

有没有办法创建一个控制器来返回整个文件夹/目录的 PartialView?

谢谢,

4

2 回答 2

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);
}
于 2013-10-07T16:35:26.170 回答
0

您可以使用 return Json Data 作为 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" }) 

在 JavaScript 上

function scsFunction(response) {
    var temphtml1 = response.strPartial1 ;
    var temphtml2 = response.strPartial2 ;

    $("#dvPartial1").html(temphtml1);
    $("#dvPartial2").html(temphtml2);

    }

这样,您可以在一次操作调用中更新部分视图的数量

于 2013-10-08T06:31:05.767 回答