繁体   English   中英

静态路由MVC 4只有1个控制器

[英]Static Route MVC 4 only 1 Controller

如何只有一个特定的路径到控制器和操作。

我只有一个控制器和动作,这是我想让人们去的唯一地方:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

这就是我现在所拥有的,但是,我不希望它被允许去Question控制器和Index操作以外的任何地方。

您问题中的路线将强制执行您想要的规则。 但是我不认为你需要“/”作为URL,我认为空字符串“”也可以正常工作。

routes.MapRoute(
    name: "Default",
    url: "",
    defaults: new { controller = "Question", action = "Index" }
);

由于您的URL中没有任何路由参数占位符,因此所有/的请求都将路由到QuestionController的Index操作。 此外,所有其他网址将返回404未找到的响应。

即使该方法的第三个参数是“默认值”,它们也将始终适用。 由于您未在url模板中指定{controller}或{action}标记,因此此路由不能用于访问任何其他控制器上的任何其他操作。

如果您希望所有可能的URL指向一个操作,您可以执行以下操作:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
    name: "Default",
    url: "{*path}",
    defaults: new { controller = "Question", action = "Index" }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM