Asp.net mvc 如何构建自定义URL链接MVC

Asp.net mvc 如何构建自定义URL链接MVC,asp.net-mvc,asp.net-mvc-4,hyperlink,routevalues,Asp.net Mvc,Asp.net Mvc 4,Hyperlink,Routevalues,MVC4中的UrlHelper类中有如下一些方法 public string Action(string actionName, object routeValues); public string Action(string actionName, RouteValueDictionary routeValues); …但我想更改每个操作方法调用中的路由值 为此,我编写了CustomUrlHelper类,如下所示: public class CustomUrl : UrlH

MVC4中的UrlHelper类中有如下一些方法

    public string Action(string actionName, object routeValues);

    public string Action(string actionName, RouteValueDictionary routeValues);
…但我想更改每个操作方法调用中的路由值 为此,我编写了CustomUrlHelper类,如下所示:

public class CustomUrl : UrlHelper
{  
    public CustomUrl()
        : base(HttpContext.Current.Request.RequestContext,RouteTable.Routes){}


    public string CustomAction(string actionName, string controllerName, string areaName, object routeValues, bool generateToken)
    { 
        RouteValueDictionary rvd = new RouteValueDictionary(routeValues);
        //some changes on route value dictionary


        return Action(actionName,controllerName, rvd);
    }


}
若我们知道操作名控制器名,那个么一切都没问题,但若我们只知道一个基本URL和路由值字典,那个么我的CustomAction方法就不起作用了

假设我只有一个像a/B/C/D和RouteValueDictionary这样的链接库


现在我想要一个方法,它获取baseUrl和RouteValueDictionary并生成完整的链接。

并不真正理解您要实现的目标。我认为您尝试做的事情应该在Routes集合中完成……正如您可以看到我的CustomAction函数一样,如果我们知道操作名称、控制器名称等,那么我可以轻松地构建一个链接,在其中我可以做RouteValueDictionary,无论我想做什么。但若我们只知道一个链接,并尝试在它的末尾添加路由值,那个么我的方法就不再有效了。我该怎么办?你说的只知道一个链接是什么意思?如果您的意思是您有一个字符串,比如var string=SomeController/SomeAction/SomeParameter;然后您可以创建并使用其属性提取分段。是否可以提取所有分段?如果我的项目中有一个区域,会发生什么?你能给我看一本书吗example@bttb,如果要基于此页面创建Uri,则其属性将包括scheme=http,host=stackoverflow.com和segments=[questions/,2644706/,how to build custom url link mvc]。我不确定你想做什么,在什么环境下,所以我不确定这是否是你需要的。p、 添加下一条评论时,请单击右侧的“帮助”,以便知道如何通知用户