gpt4 book ai didi

asp.net-mvc - 在 ASP.NET 表单页面中包含 MVC 部分 View

转载 作者:行者123 更新时间:2023-12-03 19:09:12 25 4
gpt4 key购买 nike

我们在同一个解决方案中有旧的 ASP.NET 表单页面和新的 MVC View 和部分 View 。网站上的一些页面是 MVC,而遗留页面是表单。这些遗留表单页面之一是 .ascx控制。

有什么方法可以让我将 MVC 部分 View ( .ascx )插入到这个表单 .ascx 中控制?

最佳答案

我使用这种技术将 MVC 部分嵌入到 webforms 页面中。不确定它是否适用于 webforms 用户控件,但应该是可能的。

步骤 1. 在应用程序的 MVC 部分中,创建以下辅助函数。这完成了所有艰苦的工作:

namespace MvcApplication
{
// create a dummy controller
public class DummyController : Controller
{
}

public static class MvcPartialHelper
{
public static void RenderPartial(string partialViewName, object model)
{
ControllerContext controllerContext;
HttpContextBase httpContextBase;
IView view;
RouteData routeData;
ViewContext viewContext;

httpContextBase = new HttpContextWrapper(HttpContext.Current);
routeData = new RouteData();
routeData.Values.Add("controller", typeof(DummyController).Name);
controllerContext = new ControllerContext(new RequestContext(httpContextBase, routeData), new DummyController());
view = ViewEngines.Engines.FindPartialView(controllerContext, partialViewName).View;
viewContext = new ViewContext(controllerContext, view, new ViewDataDictionary { Model = model }, new TempDataDictionary(), httpContextBase.Response.Output);
view.Render(viewContext, httpContextBase.Response.Output);
}
}
}

然后,在您的网页(或用户控件)中:

添加以下内容以引用上述内容:
<%@ Import Namespace="MvcApplication" %>

然后当您需要显示部分时,您可以添加如下内容:
<% MvcPartialHelper.RenderPartial("~/views/shared/TestPartial.ascx", "hello - this is my model"); %>

其中第二个参数是您的“模型”。

我在混合 MVC/Webforms 环境中广泛使用这种技术,它像梦一样工作!

享受

关于asp.net-mvc - 在 ASP.NET 表单页面中包含 MVC 部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com