默认情况下,如果 url 是“mydomain”,它会转到控制器主页;行动=索引。
但是当索引操作有参数时,url 必须是:
mydomain/home/index?name=John
想要得到:
mydomain?name=John
创建这样的 url 应该定义什么?
谢谢,
约瑟夫
默认情况下,如果 url 是“mydomain”,它会转到控制器主页;行动=索引。
但是当索引操作有参数时,url 必须是:
mydomain/home/index?name=John
想要得到:
mydomain?name=John
创建这样的 url 应该定义什么?
谢谢,
约瑟夫
正确的网址如下:
http://mydomain.com/?name=John
给定默认路由设置,这将调用控制器Index
上的操作Home
并传递name
参数。
就您对mydomain?name=John
url 的请求而言,这看起来不是一个格式良好的 url。
您确定要在您的网站mydomain/home/index?name=John
中mydomain?name=John
使用您的网址吗?
如果您更正了您的路由引擎,您的路线可能是mydomain/home/index/john
和mydomain/john
,对我来说这会更正确。
这就是你的目的吗?
如果是这样,假设您有一个 Index 操作,在您的主控制器中接受名称的字符串参数,您可以修改 global.asax,并更改默认路由,并在标准默认路由下方添加一个路由,如下所示:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", name= UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"NameOnly", // Route name
"{name}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
确保将仅名称路由放在底部,因为基于字符串的参数将匹配所有内容,因此您需要首先匹配更明确的参数。