【问题标题】:How do I redirect page in MVC3?如何在 MVC3 中重定向页面?
【发布时间】:2012-02-14 13:21:39
【问题描述】:

我已经创建并托管了 MVC3 网络应用程序,现在的问题是当我打开我的

www.abc.com

它正在打开 index.cshtml 即 mvc web 应用程序的主页

但我不希望它在我打开时打开

www.abc.com

我有一个名为

的静态页面

index.htm

应该先打开

在 mvc3 Global.asax 代码中:

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

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

        }

如何渲染到

http://www.abc.com/mypage.html

【问题讨论】:

  • user911275 - 这不是stackoverflow.com/questions/9275523/… 的精确副本吗?如果是这样,请尝试该解决方案
  • 是的,我也在处理同样的问题,但想使用 global.asax 进行渲染,谢谢!
  • 您是否尝试将页面名称更改为“default.htm”。如果这不起作用,请在 RegisterRoutes(...) 函数中向该页面添加另一个 IgnoreRoute。
  • 添加 IgnoreRoute 之后我到底需要写什么或改变什么?

标签: asp.net-mvc asp.net-mvc-3 model-view-controller


【解决方案1】:

我有blogged about这个

在根目录中添加一个新的 WebForm 作为 Default.aspx,

设置为启动页

并在页面加载时将其重定向到您的默认 URL。 - Home\Index 或任何其他页面。

public partial class _default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Redirect("~/Home");
    }
}

【讨论】:

  • swapneel - 不幸的是,它看起来像 asp.net webforms 而不是 mvc,但也许两者都可以混合搭配,以前从未尝试过这种方式:)
  • 只是MVC项目中的一个Webform,我们用来重定向到App中所需的页面。可能有更好的解决方案。我不知道
  • @jim 是的,他们可以混搭。但除非需要,否则不建议混合使用。
  • 我正在尝试使用 global.asax 进行渲染,但失败了 :(
  • 您尝试过上述解决方案吗?我认为使用全局 aspx 将不起作用,因为在 IIS 中有设置列表来呈现 index、aspx、index.asp、default.aspx、default.asp 作为启动页面。因此对于每个用户请求,IIS 都会尝试呈现这些页面
猜你喜欢
  • 2011-10-16
  • 2012-04-24
  • 2018-10-24
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多