我们有一个可插入的框架,它返回ActionResult
将事物呈现给浏览器的对象。一个最新的要求是我们的插件应该可以从常规的 ASP.NET Web 窗体应用程序中调用。
到目前为止,我已经想出了这个,它适用于非常基本的 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);
}
}
您可以使用以下 Web 表单调用上述内容:
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 怎么办?