1

又是我。

我试图在我的视图中呈现一个链接,但参数被呈现为查询参数。也就是说,我想:

http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle

呈现为

http://mysite/Discussion/AddMessage/12345/MyTitle

我怎样才能做到这一点?

标记

4

2 回答 2

0

是的,您可以使用RouteLink

在定义以下内容后,您需要Route在 RouteConfig 中添加一个名称如下所示的新名称DefaultRoute:-

routes.MapRoute(
             name: "NewRoute",
             url: "{controller}/{action}/{guid}/{title}",
             defaults: new 
              { controller = "Discussion",
                action = "AddMessage", 
                guid = UrlParameter.Optional, 
                title = UrlParameter.Optional }
             );

然后创建一个RouteValueDictionary来添加你的路由值,然后使用RouteLink扩展名从HtmlHelper..渲染它

@{
    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-17T05:01:20.060 回答
0

尝试 RouteLink 扩展方法并发送必要的参数。

出这个 Haacked 帖子

于 2013-05-17T05:03:26.310 回答