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

Asp.net mvc 在MVC.NET的不同控制器中重用视图模板,asp.net-mvc,controller,asp.net-mvc-partialview,Asp.net Mvc,Controller,Asp.net Mvc Partialview,我有一个书籍控制器,还有一个作者控制器,在作者内部,有一个获取所有书籍的请求,现在我已经有了一个显示模板,用于书籍控制器中的书籍,并希望重用它。。。。在cshtml中,它有点简单: @Html.Action("GetAuthorBooksBookBadge", "Book") 但是如果我想调用Ajax函数以返回字符串(Json)格式的书籍列表,那么我必须在控制器代码中应用该操作,如下所示: ... ArrayList books = new ArrayList(); // get books

我有一个书籍控制器,还有一个作者控制器,在作者内部,有一个获取所有书籍的请求,现在我已经有了一个
显示模板
,用于书籍控制器中的书籍,并希望重用它。。。。在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
}
...
。。。
ArrayList books=新建ArrayList();
//获取书籍并以字符串格式添加到数组中
对于(int i=0;i<4;i++)
{
books.Add(Utils.RenderRazorViewToString(ControllerContext,“DisplayTemplates/DisplayBookBadge”,book));//TODO:修复
}
...

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

如果不对代码进行任何更改,将此共享视图放在共享视图文件夹中不是更好吗??我可能完全忽略了这一点,所以如果是这种情况,请忽略任何架构建议。将它放在共享文件夹中有点忽略了这一点,因为它实际上属于图书控制器。我只是向另一个管理员请求。这是一个悲伤的日子,大约一周前我发布了这个问题,没有答案:/