我正在使用Html.ActionLink生成链接 .
@ Html.ActionLink(item.Text,item.Author.UniqueName,“作者”,新,null)
但是,当我使用此方法时,生成的链接是:
http://localhost/Author/aeschylus?selectedQuoteId=1627
但我希望它是:
http://localhost/Author/aeschylus/1627
我的配置是:
routes.MapRoute(“AuthorQuotes”,“Author / / ”,new {controller =“AuthorQuotes”,action =“Index”,authorUniqueName = UrlParameter.Optional,selectedQuoteId = UrlParameter.Optional});
使用Html.ActionLink可以做到这一点吗?
1 回答
确保已将此自定义路径 before 设置为默认路径 . 此外,您似乎忘记为路线的
authorUniqueName
部分提供值 . 由于这不是路由模式的最后一部分,因此不能是可选的 .首先修复你的路线定义:
然后为此必需参数提供值:
基本上,如果要在路径中包含可选参数,则这只能是最后一个 . 如果您需要有多个可选参数,那么请使用查询字符串(就像您一样),否则路由引擎无法消除它们之间的歧义 .