需要ActionLink的替代品

时间:2013-05-17 04:50:36

标签: asp.net-mvc asp.net-mvc-4

我再次。

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

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

呈现为

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

我怎样才能做到这一点?

标记

2 个答案:

答案 0 :(得分: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的{​​{1}}扩展名进行渲染..

HtmlHelper

生成的超链接将生成为

@{
    var dict = new RouteValueDictionary();
    dict.Add("guid", "someguid");
    dict.Add("title", "sometitle");

}

@Html.RouteLink("LinkText", "NewRoute", dict);

答案 1 :(得分:0)

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

结帐this Haacked post