【问题标题】:how controller and action name other than default one Home/Index as default?除了默认的 Home/Index 之外的控制器和动作名称如何作为默认值?
【发布时间】:2015-11-10 19:12:09
【问题描述】:
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

这里 Home/Index 设置为默认设置,以及控制器/操作/id 的 Url 占位符。

我明白,当有人用 url 访问浏览器时(我有带 Index 方法的 Home 控制器),

http://localhost:51712/Home/Index

然后它渲染视图,因为这是在路由配置中设置的。

但是,如果我有带有“Test”方法的“Hello”控制器并且我使用 url 访问浏览器,

http://localhost:51712/Hello/Test

然后我也看到了。

问题,这个控制器名和方法名是如何在后台解析的?

我知道我们有控制器/动作的占位符。

下面有人可以给我解释一下吗?

谢谢,

【问题讨论】:

标签: asp.net-mvc


【解决方案1】:

如果你看到routes.MapRoute,controller Home和action Index都是defaults参数的一部分,但是做绑定的重要部分是属性url,url是url: "{controller}/ {action}/{id}",任何控制器、任何操作和任何 ID 也是如此,因此 Hello/Test 正在返回视图。

当 URL 中不存在任何其他控制器和操作时使用默认值。

问候,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多