有什么方法可以使用MVC帮助器或其他方法将asp.net MVC操作的常规 View 呈现到旧的.aspx
WebForm上?
最佳答案
免责声明:下面提出的解决方案是一个hack。
假设您具有以下 Controller :
public class HomeController : Controller
{
[ChildActionOnly]
public ActionResult Foo()
{
return View();
}
}
和相应的局部(
Foo.ascx
)。现在,在旧版WebForms页面中,您想使用此操作。您可以按照以下步骤进行操作:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script type="text/C#" runat="server">
private class DummyController : Controller { }
public HtmlHelper Html { get; private set; }
protected void Page_Load(object sender, EventArgs e)
{
var httpContext = new HttpContextWrapper(Context);
var controllerContext = new ControllerContext(
httpContext,
new RouteData(),
new DummyController()
);
var viewContext = new ViewContext(
controllerContext,
new WebFormView("Views"),
new ViewDataDictionary(),
new TempDataDictionary(),
TextWriter.Null
);
Html = new HtmlHelper(viewContext, new ViewPage());
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%= Html.Action("About", "Home") %>
</div>
</form>
</body>
</html>
关于asp.net - 将ASP.NET MVC放入WebForms页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245009/