将web表单设置为ASP.net MVC项目中的默认页面

本文关键字:项目 默认 MVC net 表单 web 设置 ASP | 更新日期: 2023-09-27 18:04:09

我有一个Mvc项目,但我需要一个webform是启动页面时,用户直接去网站而不指定一个页面。我可以使用"MapPageRoute"优先于默认的Mvc路由,如果我先调用代码像这样。

            routes.MapPageRoute(
           "Default",
            "",
             "~/Members/MyHomePage.aspx"
            );
        routes.MapRoute(
            "DefaultMvc", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Account", action = "LogIn", id = UrlParameter.Optional } // Parameter defaults
        ); 

这里的问题是,虽然这将网站重定向到正确的aspx页面,它不会改变URL到主页,所以URL保持像"http://MySite/"的东西,当它应该是"http://MySite/Members/MyHomePage.aspx"

唯一的其他解决方案,我看到,将执行所需的是创建另一个控制器和重定向到我的网页在下面的动作

public class HomeController : Controller
{
    public ActionResult Index()
    {

        Response.Redirect("~/Members/Requests.aspx");
        return View();
    }
}

,然后在全局配置中将其设置为默认值,如

 routes.MapRoute(
            "DefaultMvc", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        ); 

然而,这似乎不是一个很好的做法,因为我正在创建一个控制器,只是为了重定向到一个网页表单的主页。

我看这个方式是正确的还是有更好的选择?

将web表单设置为ASP.net MVC项目中的默认页面

尝试将webform设置为启动页面,右键单击页面并从属性菜单中选择设置为启动页面。

我添加了新的条目,然后选择了Webform类型,并将其设置为启动页面,路由没有变化,它只是加载默认的Webform与Url的页面名称