C# 如何通过url传递视图名称来访问站点视图(mvc.net)?(用于重定向到路由)

C# 如何通过url传递视图名称来访问站点视图(mvc.net)?(用于重定向到路由),c#,asp.net,.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 4,让我解释一下我的问题 我有一个在服务器上发布.aspx页面(webforms)的网站,例如:www.mysite.com 几个月前,它推出了一个masive数字营销营地,其中最重要的是联系方式,例如:www.mysite.com/contact.aspx 现在(忘了razon),该项目被迁移为mvc项目。然后,通过www.mysite.com/contact访问新的联系人表单。也就是说,通过路线,而不是页面 在MVC项目中,我需要一种从www.mysite.com/contact.aspx(在c

让我解释一下我的问题

我有一个在服务器上发布.aspx页面(webforms)的网站,例如:www.mysite.com

几个月前,它推出了一个masive数字营销营地,其中最重要的是联系方式,例如:www.mysite.com/contact.aspx

现在(忘了razon),该项目被迁移为mvc项目。然后,通过www.mysite.com/contact访问新的联系人表单。也就是说,通过路线,而不是页面

在MVC项目中,我需要一种从www.mysite.com/contact.aspx(在campaing上发送的链接)重定向到www.mysite.com/contact的方法。这意味着:没有服务器http或dns配置

我尝试创建一个页面contact.aspx。在我的mvc项目上,重定向到route/contact,但不起作用。我之所以支持MVC,是因为MVC处理的是路线,而不是视图(.aspx)

有人能帮我什么想法或指导吗?记住,不可能在服务器配置上工作,只需要在mvc项目上编码


Project ASP.net MVC4和framework 4.5

我想我知道您想要做什么

将Contact.aspx添加到MVC应用程序的根目录中

然后在代码隐藏中,在Contact.aspx.cs中添加一个RedirectToRoute调用Page_Load事件,如下所示:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Redirect("~/Contact/Index");
    }
(假设您的新联系人Razor视图称为“索引”,并且位于“联系人”控制器中)

如果Contact.aspx与MVC控制器不在同一项目中,则可以尝试正常响应。重定向方式如下:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Redirect("~/Contact/Index");
    }

您只能在当前MVC项目RouteConfig文件中永久更改301重定向

为此,请访问www.mysite.com/contact.aspx,使用下面的路由配置

 routes.MapRoute(
               name: "ContactOld",
               url: "Contact.aspx",
               defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
           );
    routes.MapRoute(
       name: "Contact",
       url: "Contact",
       defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
   );
为此,请访问www.mysite.com/contact,并在路由配置下使用

 routes.MapRoute(
               name: "ContactOld",
               url: "Contact.aspx",
               defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
           );
    routes.MapRoute(
       name: "Contact",
       url: "Contact",
       defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
   );

你好!你的问题太宽泛了。在这里,关于stackoverflow,我们讨论的是编码问题,因此如果您的代码有问题(异常、不可预测的行为等),请编辑您的问题或询问其他问题。您还可能会发现此链接很有用:Project ASP.net MVC4和framework 4.5如果您获得了所需的信息,请记住标记为已回答:)