Как получить представление и отобразить его с помощью пользовательского ViewEnging в MVC? - PullRequest
0 голосов
/ 12 сентября 2011

Мне нужно получить представление / частичное представление из некоторого местоположения (не местоположение по умолчанию) и отрендерить его. Я думал создать собственный 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. Если у вас есть другие предложения, я буду рад.

...