Преобразовать строку в (object) routeValues C#
Я пишу функцию расширения для UrlHelper. Эта функция будет принимать три параметра String. Первый параметр - ACTIOn, второй - CONTROLLER, а третий - случайная строка.
пример: url.customeURL("Index", "Home", "view=someview");
После принятия всех этих параметров функция Extension возвращает 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 ответ
Я не знаю, есть ли лучший, более поддерживаемый способ, но, похоже, это работает, так что вы можете использовать его
public static string CustomUrlAction(this UrlHelper helper, string action, string controller, string parameters)
{
return String.Format("{0}?{1}",helper.Action(action, controller),parameters);
}