我正在为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"})
但我必须使用扩展功能。
答案 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);
}