将WebForm集成到MVC应用程序ASP.NET中

时间:2013-04-30 15:29:18

标签: asp.net-mvc asp.net-mvc-4 webforms

我的问题有两部分:

1

我的MVC项目具有如下文件夹结构:

folder structure

我想在“创建”页面中创建链接到“优惠”WebForm

的链接

我尝试将其添加到RouteConfig:

routes.MapPageRoute(
            "idea-savings-calculator",
            "Idea/Savings",
            "~/Views/Idea/Savings.aspx"
            );

但是默认的MVC MapRoute函数:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

首先映射到URL localhost:xxxx/Idea/Savings并抛出错误,因为Idea控制器存储中没有名为Saving的操作。

编辑:RouteConfig类:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");

                    routes.MapPageRoute(
            "idea-savings-calculator",
            "Idea/Savings",
            "~/Views/Idea/Savings.aspx"
            );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    }
}

2

以下是“创意”控制器网址的“创建”视图中的剪切:http://localhost:51946/Idea/Create Idea>Create>

红色框表示我希望链接到储蓄WebForm

储蓄WebForm只是一个简单的计算器;如何将产品从计算中传递回上面的“创建”页面,以便它可以显示在底部文本框中?我猜它会作为智能控制器可以匹配的网址中的参数?但是......怎么样?

谢谢!

1 个答案:

答案 0 :(得分:1)

因此,为了解决我的第一个问题,我将WebForms页面'Savings.aspx'移动到我的项目路线,并在MapRoute方法之后使用了MapPageRoute

routes.MapPageRoute(
"idea-savings-calculator",
"Idea/Savings",
"~/Savings.aspx"
);