将字符串转换为(对象)routeValues C#

时间:2015-02-10 14:30:50

标签: c# urlhelper

我正在为UrlHelper编写扩展函数。此函数将接受三个String参数。第一个参数是ACTIOn,第二个是CONTROLLER,第三个是RANDOM STRING。

示例:url.customeURL("Index", "Home", "view=someview");

接受所有这些参数后,Extension函数将返回一个带有action,controller和查询字符串的URL;

/Home/Index?view=someview

这是我的功能:

public static string CustomUrlAction(this UrlHelper helper, string action, string controller, string parameters)
        {
            return helper.Action(action, controller, new { parameters });
        }

我面对当前实现的问题是,当我将PARAMETERS传递给routeValues对象时,它会使URL成为:

/home/index?parameters=view=someview

我想要它创建一个像:

这样的URL
/Home/Index?view=someview

那么我还能做到这一点吗?我知道这可以通过Url.Action("Index", "Home", new {"view=someview"})

轻松完成

但我必须使用扩展功能。

1 个答案:

答案 0 :(得分:0)

我不知道是否有更好,更受支持的方式,但这似乎有用,所以你可以使用它

public static string CustomUrlAction(this UrlHelper helper, string action, string controller, string parameters)
        {
            return String.Format("{0}?{1}",helper.Action(action, controller),parameters);
        }