【问题标题】:Asp.net MVC Index page without domain paths没有域路径的 Asp.net MVC 索引页面
【发布时间】:2015-10-10 20:28:31
【问题描述】:

我相信这应该已经在某个地方被问及回答了,或者只是一个非常基本的事情,但我根本没有找到任何东西,我猜我可能查询我的搜索错误。

无论哪种方式,我想要的是显示没有任何域路径的索引页面。

我想要什么:

http://localhost:50024/

我是如何使用域路径实现的:

http://localhost:50024/Home/Index

我创建了一个 HomeController.cs 并为 Index 视图添加了一个 GET 方法......它位于 Views 文件夹下的 Home 文件夹中,当然它会创建域路径。我不在乎是否必须制作额外的控制器或其他东西,我只想让它显示我的索引页面而没有任何路径。提前致谢!

【问题讨论】:

  • 请出示您的route 和您的索引视图方法。

标签: c# asp.net-mvc path


【解决方案1】:

你必须在global.asax的路由配置中设置参数的默认值,类似这样:

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

这样当路由参数丢失时,路由系统会将请求指向所需的控制器和动作。

【讨论】:

  • 对..我之前确实看到过这个,但一直认为它是用于其他用途的......我的错。感谢您的回答!
  • 那将是route.config 而不是Global.asax
  • @StuartL 在我的 MVC 4 项目中,代码位于 RegisterRoutes 方法下的 Global.asax.cs 中。
  • 这里也一样,在 Global.asax.cs 的 RegisterRoutes 方法下。再次感谢米海!
【解决方案2】:

刚刚测试了自己,所以我知道它有效

<a href="@Url.Action("Index", "Home", new { Area = "" })">Test</a>

如果你修改了它们或其他东西,显然用你在路由中的默认值替换它们

【讨论】:

    【解决方案3】:

    如果您只需要“根”URL,您也可以使用~/,如下所示:

    <a href="~/">Home</a>
    

    Razor 引擎足够智能,可以就地解析该 URL,而无需使用 UrlHelper 类。

    【讨论】:

    • 我一开始没有“根 URL”,它总是 /{ViewFolderName}/{ViewName},所以返回“根”URL 的链接给了我 404。:)米海的答案正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2010-09-09
    • 2021-09-28
    • 2018-11-16
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多