Мне нужно получить представление / частичное представление из некоторого местоположения (не местоположение по умолчанию) и отрендерить его.
Я думал создать собственный ViewEngine. Я думал следующее:
1 - Возвращать Plugin
как результат действия, который принимает pluginName в конструкторе
public class PluginController : Controller
{
[HttpPost]
public ActionResult LoadPlugin(string pluginName)
{
return new Plugin(pluginName);
}
}
public class Plugin : ActionResult
{
private readonly string PluginName;
public PEditorPlugin(string pluginName)
{
this.PluginName = pluginName;
}
public override void ExecuteResult(ControllerContext context)
{
var engine = new MyViewEngine();
string viewContent = // Here I need some how to take the view with partialName and to render it
context.RequestContext.HttpContext.Response.Write(content);
}
}
2 - В ExecuteResult я создам экземпляр MyViewEngine
и каким-то образом возьму представление и отредактирую его. Но как это сделать, я не знаю!
public class MyViewEngine : WebFormViewEngine
{
public override IView CreatePartialView(ControllerContext controllerContext, string partialPath)
{
return new WebFormView(partialPath, null);
}
public MyViewEngine ()
{
// create our partial views and common shared locations
PartialViewLocationFormats = new[] {
"~/PluginsArchive/{0}.ascx"
};
}
}
Соу, как я могу взять вид и сделать его?
P.S. Если у вас есть другие предложения, я буду рад.