У нас есть подключаемый фреймворк, который возвращает ActionResult
объекты, которые визуализируют вещи в браузере. Одно из последних требований состоит в том, что наши плагины должны вызываться из обычного приложения ASP.NET Web Forms.
До сих пор я придумал это, которое работает для очень простых ActionResults:
public class ActionResultTranslator {
HttpContextBase _context;
public ActionResultTranslator(HttpContextBase context ) {
_context = context;
}
public void Execute(ActionResult actionResult) {
ControllerContext fakeContext = new ControllerContext();
fakeContext.HttpContext = _context;
actionResult.ExecuteResult(fakeContext);
}
}
Вы можете позвонить по вышеуказанному с веб-формы:
protected void Page_Load(object sender, EventArgs e) {
HttpContextWrapper contextWrapper = new HttpContextWrapper(this.Context);
var translator = new ActionResultTranslator(contextWrapper);
translator.Execute(new RedirectResult("http://google.com"));
}
Что еще мне нужно сделать, чтобы все подключить? Например, что если я хочу вернуть ViewResult?