加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC:路由到URL

发布时间:2020-12-16 06:53:20 所属栏目:asp.Net 来源:网络整理
导读:在MVC中获取URL(相对或绝对)的最简单方法是什么?我在这里看到了这个代码,但它似乎有点冗长,并没有枚举RouteTable. 例: Liststring urlList = new Liststring();urlList.Add(GetUrl(new { controller = "Help",action = "Edit" }));urlList.Add(GetUrl(new
在MVC中获取URL(相对或绝对)的最简单方法是什么?我在这里看到了这个代码,但它似乎有点冗长,并没有枚举RouteTable.

例:

List<string> urlList = new List<string>();
urlList.Add(GetUrl(new { controller = "Help",action = "Edit" }));
urlList.Add(GetUrl(new { controller = "Help",action = "Create" }));
urlList.Add(GetUrl(new { controller = "About",action = "Company" }));
urlList.Add(GetUrl(new { controller = "About",action = "Management" }));

附:

protected string GetUrl(object routeValues)
{
    RouteValueDictionary values = new RouteValueDictionary(routeValues);
    RequestContext context = new RequestContext(HttpContext,RouteData);

    string url = RouteTable.Routes.GetVirtualPath(context,values).VirtualPath;

    return new Uri(Request.Url,url).AbsoluteUri;
}

检查RouteTable并获取给定控制器和操作的URL的更好方法是什么?

解决方法

使用UrlHelper类: http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.aspx

您应该可以通过控制器中的Url对象使用它.要映射到操作,请使用Action方法:Url.Action(“actionName”,“controllerName”);.
Action方法的完整重载列表如下:http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action.aspx

所以你的代码看起来像这样:

List<string> urlList = new List<string>();
        urlList.Add(Url.Action("Edit","Help"));
        urlList.Add(Url.Action("Create","Help"));
        urlList.Add(Url.Action("Company","About"));
        urlList.Add(Url.Action("Management","About"));

编辑:从您的新答案看,您尝试构建站点地图似乎.

看看这个Codeplex项目:http://mvcsitemap.codeplex.com/.我自己没有使用它,但它看起来非常可靠.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读