Jquery AspNet Core 3.1-如何获取控制器实例?
关于: ???如果未声明,则为方法的断开签名Jquery AspNet Core 3.1-如何获取控制器实例?,jquery,ajax,asp.net-core-mvc,Jquery,Ajax,Asp.net Core Mvc,关于: ???如果未声明,则为方法的断开签名 此控制器对我不起作用。我已经实现了@Red建议的代码,但是我调用了这个方法,我无法获得controller的实例 public static class ControllerExtensions { public static async Task RenderViewAsync(this Controller controller, string viewName, TModel model, bool partial = false) { if
此控制器对我不起作用。我已经实现了@Red建议的代码,但是我调用了这个方法,我无法获得controller的实例
public static class ControllerExtensions { public static async Task RenderViewAsync(this Controller controller, string viewName, TModel model, bool partial = false) { if (string.IsNullOrEmpty(viewName)) { viewName = controller.ControllerContext.ActionDescriptor.ActionName; }
controller.ViewData.Model = model;
using (var writer = new StringWriter())
{
IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, !partial);
if (viewResult.Success == false)
{
return $"A view with the name {viewName} could not be found";
}
ViewContext viewContext = new ViewContext(
controller.ControllerContext,
viewResult.View,
controller.ViewData,
controller.TempData,
writer,
new HtmlHelperOptions()
);
await viewResult.View.RenderAsync(viewContext);
return writer.GetStringBuilder().ToString();
}
public static class ControllerExtensions { public static async Task RenderViewAsync(this Controller controller, string viewName, TModel model, bool partial = false) { if (string.IsNullOrEmpty(viewName)) { viewName = controller.ControllerContext.ActionDescriptor.ActionName; }
controller.ViewData.Model = model;
using (var writer = new StringWriter())
{
IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, !partial);
if (viewResult.Success == false)
{
return $"A view with the name {viewName} could not be found";
}
ViewContext viewContext = new ViewContext(
controller.ControllerContext,
viewResult.View,
controller.ViewData,
controller.TempData,
writer,
new HtmlHelperOptions()
);
await viewResult.View.RenderAsync(viewContext);
return writer.GetStringBuilder().ToString();
}