又是我。
我试图在我的视图中呈现一个链接,但是参数被呈现为查询参数。这就是说,我想:
http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle要呈现为
http://mysite/Discussion/AddMessage/12345/MyTitle我如何才能做到这一点?
标记
发布于 2013-05-17 13:01:20
是的,您可以使用RouteLink
您需要先在RouteConfig中添加一个新的DefaultRoute,在DefaultRoute的防御工事之后添加如下名称:-
routes.MapRoute(
name: "NewRoute",
url: "{controller}/{action}/{guid}/{title}",
defaults: new
{ controller = "Discussion",
action = "AddMessage",
guid = UrlParameter.Optional,
title = UrlParameter.Optional }
);然后创建一个RouteValueDictionary来添加您的路由值,然后使用HtmlHelper中的RouteLink扩展来呈现它。
@{
var dict = new RouteValueDictionary();
dict.Add("guid", "someguid");
dict.Add("title", "sometitle");
}
@Html.RouteLink("LinkText", "NewRoute", dict);生成的超链接将生成为
<a href="/Discussion/AddMessage/someguid/sometitle">LinkText</a>发布于 2013-05-17 13:03:26
尝试RouteLink扩展方法并发送必要的参数。
检出this Haacked post
https://stackoverflow.com/questions/16601617
复制相似问题