在MVC.NET中重用不同控制器中的视图模板

时间:2014-05-12 11:16:51

标签: asp.net-mvc controller asp.net-mvc-partialview

我有一个图书管理员,还有一个作者控制器,在作者内部,有一个请求获取所有图书,现在我已经有Display Template对于坐在Book控制器内的书,并想重用它....在cshtml中,它很容易:

@Html.Action("GetAuthorBooksBookBadge", "Book")

但如果我想调用Ajax函数以字符串(Json)格式返回书籍列表,那么我必须在控制器代码中应用该操作,如下所示:

...
ArrayList books = new ArrayList();

// get books and add to the array in string format

for (int i = 0; i < 4; i++)
{
    books.Add(Utils.RenderRazorViewToString(ControllerContext, "DisplayTemplates/DisplayBookBadge", book)); // TODO: fix
}
...

现在您可以看到, ControllerContext 不属于正确的位置....我想在书籍控制器中应用显示模板,并将其作为字符串返回,如何?我尝试了很多方法,你可以动态创建一个controllercontext,创建一个BookController的实例......

0 个答案:

没有答案