首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要ActionLink的替代方案

需要ActionLink的替代方案
EN

Stack Overflow用户
提问于 2013-05-17 12:50:36
回答 2查看 589关注 0票数 1

又是我。

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

代码语言:javascript
运行
复制
http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle

要呈现为

代码语言:javascript
运行
复制
http://mysite/Discussion/AddMessage/12345/MyTitle

我如何才能做到这一点?

标记

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-17 13:01:20

是的,您可以使用RouteLink

您需要先在RouteConfig中添加一个新的DefaultRoute,在DefaultRoute的防御工事之后添加如下名称:-

代码语言:javascript
运行
复制
routes.MapRoute(
             name: "NewRoute",
             url: "{controller}/{action}/{guid}/{title}",
             defaults: new 
              { controller = "Discussion",
                action = "AddMessage", 
                guid = UrlParameter.Optional, 
                title = UrlParameter.Optional }
             );

然后创建一个RouteValueDictionary来添加您的路由值,然后使用HtmlHelper中的RouteLink扩展来呈现它。

代码语言:javascript
运行
复制
@{
    var dict = new RouteValueDictionary();
    dict.Add("guid", "someguid");
    dict.Add("title", "sometitle");

}

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

生成的超链接将生成为

代码语言:javascript
运行
复制
<a href="/Discussion/AddMessage/someguid/sometitle">LinkText</a>
票数 0
EN

Stack Overflow用户

发布于 2013-05-17 13:03:26

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

检出this Haacked post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16601617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档