2015-02-10 11 views
0

我正在爲UrlHelper寫一個擴展函數。該函數將接受三個String參數。第一個參數是ACTIOn,第二個是CONTROLLER,第三個是一些隨機串。將字符串轉換爲(對象)routeValues C#

例如: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 }); 
     } 

我與我目前的實施面臨的問題是,當我通過參數來routeValues反對它使URL,如:

/home/index?parameters=view=someview 

而我想要它創建一個URL,如:

/Home/Index?view=someview 

那麼無論如何我能做到這一點?我知道這可以很容易地完成Url.Action("Index", "Home", new {"view=someview"})

但我必須做一個擴展功能。

+0

如何對返回的String.Format(「{0} {1} 「,helper.Action(動作,控制器),參數); ? – 2015-02-10 14:32:36

+1

謝謝,它工作。 – Capri82 2015-02-10 14:41:52

+0

好的,我很高興,我會留下它作爲答案。 – 2015-02-10 14:46:53

回答

0

我不知道是否有更好的,更多的支持方式,但是這似乎工作,所以你可以用它

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