【问题标题】:ASP.NET mvc -url textASP.NET mvc -url 文本
【发布时间】:2017-11-02 13:25:07
【问题描述】:

我有一个网站,默认是 www.forums.com。它将加载默认路由 ie.Controller = "Home", action = "Index"。

我的要求是。

我必须加载相同的控制器和动作,但 Url 应该显示为 "www.forums.com/Community" 。它应该显示与 /Home/Index 中相同的内容。

当他们导航到其他页面后单击主页按钮图像时,它仍应加载“www.forums.com/Community”。

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

【问题讨论】:

  • 您真的无法更改浏览器的 URL,除非您发送重定向。这是你想做的吗?
  • 问题是什么?

标签: asp.net-mvc asp.net-mvc-5


【解决方案1】:

您的要求明确要求您将操作名称更新为Community,并将默认路由操作更新为Community,而不是Index

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

家庭控制器

public ActionResult Community
{
}

【讨论】:

  • 据我所知,这似乎不是他想要做的。
  • 需求中明确指出点击home键也需要导航到这个Url,所以保持index动作没有意义。
  • 他的要求明确指出,URL 应该显示 /Community...不是一回事。
  • @JeremyHolovacs 我明白了!除非需要从某个地方使用 Home/Index 操作结果,否则可以通过我提到的方式来实现。这也可以通过自定义路由来实现,但看起来我们想多了,我可能错了不过。
【解决方案2】:

请试试这个代码,它会工作的。 无需更改控制器,只需在路由配置中添加此代码。以上默认路由

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2010-11-22
    • 2010-11-13
    • 2011-01-13
    相关资源
    最近更新 更多