2

我正在尝试在 razor 视图中构建 URL,它将 2 RouteData.Values 传递给我的操作。

这是代码:

<input type="button" value="View" onclick="location.href='@Url.RouteUrl("ViewMessage", new { threadId = 955, messageId = 11 })'" />

在 Global.asax 我定义了以下内容:

routes.MapRoute(
"ViewMessage", // Route name
"{controller}/{action}/{threadId}/{messageId}", // URL with parameters
new { controller = "Board", action = "Messages", threadId = UrlParameter.Optional, messageId = UrlParameter.Optional } // Parameter defaults

);

为什么我的网址看起来像这样:

http://localhost/Site/Board/Messages/955?messageId=11

而不是这样:

http://localhost/Site/Board/Messages/955/11

我知道我可以使用 string.Format,而是找到 MVC 助手解决方案

4

2 回答 2

1

尝试以下路线

routes.MapRoute(
"ViewMessage", // Route name
"{controller}/{action}/{threadId}/{threadId}/{messageID}", // URL with parameters
new { controller = "Board", action = "Messages", threadId = UrlParameter.Optional, messageId = UrlParameter.Optional } // Parameter defaults
于 2012-05-07T04:51:58.287 回答
1

我的猜测是:如果两者threadId都是messageId可选的,那么如何解析以下 URL:http://localhost/Site/Board/Messages/955

尝试从中删除UrlParameter.OptionalthreadId并可能为此使用不同的路线)。

于 2012-05-07T04:57:01.027 回答