0

默认情况下,如果 url 是“mydomain”,它会转到控制器主页;行动=索引。

但是当索引操作有参数时,url 必须是:

mydomain/home/index?name=John

想要得到:

mydomain?name=John

创建这样的 url 应该定义什么?

谢谢,

约瑟夫

4

2 回答 2

2

正确的网址如下:

http://mydomain.com/?name=John

给定默认路由设置,这将调用控制器Index上的操作Home并传递name参数。

就您对mydomain?name=Johnurl 的请求而言,这看起来不是一个格式良好的 url。

于 2012-09-09T14:18:39.457 回答
1

您确定要在您的网站mydomain/home/index?name=Johnmydomain?name=John使用您的网址吗?

如果您更正了您的路由引擎,您的路线可能是mydomain/home/index/johnmydomain/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
     );

确保将仅名称路由放在底部,因为基于字符串的参数将匹配所有内容,因此您需要首先匹配更明确的参数。

于 2012-09-09T15:18:33.930 回答