【发布时间】:2015-02-10 14:30:49
【问题描述】:
我正在为 UrlHelper 编写一个扩展函数。此函数将接受三个字符串参数。第一个参数是 ACTION,第二个是 CONTROLLER,第三个是一些 RANDOM STRING。
示例:url.customeURL("Index", "Home", "view=someview");
在接受所有这些参数后,扩展函数将返回一个带有动作、控制器和查询字符串的 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"}) 轻松完成
但我必须使用扩展功能。
【问题讨论】:
-
返回 string.format("{0}?{1}",helper.Action(action, controller),parameters); ?
-
好吧,我很高兴,我会把它作为答案。