【问题标题】:Can views be returned without a controller?可以在没有控制器的情况下返回视图吗?
【发布时间】:2012-11-19 14:41:30
【问题描述】:

网站结构如下

和路由配置为

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

然后我转到http://localhost:23233,它在根目录中显示 index.cshtml,如果我将根目录重命名为 index.cshtml,它会在视图/主文件夹中显示索引。我不太明白这一点。不是所有视图都由控制器返回吗?谁能给我解释一下?

【问题讨论】:

  • 我很感兴趣。据我所知,您必须专门忽略根 ("") 请求,让 MVC 忽略它并让它通过常规的 asp.net 系统获取索引。也许您可以详细说明,HomeController 是否被击中?还是直接调用视图(好像是老式的 asp.net aspx 页面)?

标签: asp.net-mvc


【解决方案1】:

~/Index.cshtml 是一个独立的网页,它不需要控制器。您可以使用 Web.config 上的以下设置禁用网页:

<appSettings>
  <add key="webpages:Enabled" value="false"/>
</appSettings>

【讨论】:

    【解决方案2】:

    以前没有见过,但是根目录中的 index.cshtml 和 default.cshtml 将被视为 index.html,而 default.html 曾经在旧的 asp.net 应用程序中被处理。我猜对于从 asp.net 迁移到 mvc 的人来说是有意义的。

    参考:http://forums.asp.net/t/1577234.aspx/1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2012-08-22
      相关资源
      最近更新 更多