Преобразовать строку в (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);
        }
Другие вопросы по тегам