Как обрабатывать динамическое количество параметров на действия контроллера? - PullRequest
2 голосов
/ 28 марта 2019

Я размещаю iframe в ASP.NET MVC View, и я должен передать определенные параметры этому src URL *1003*.Они представлены в виде простых пар «строка-строка-ключ-значение», например, http://test.test?param1=value1&param2=value2.

Цель состоит в том, чтобы URL-адрес действия моего собственного контроллера решал, какими будут эти параметры.В основном что-то вроде:

  1. Пользователь переходит на http://www.myapp.com/MyController/Index?param1=value1&param2=value2
  2. Я получаю это в public ActionResult Index(Dictionary<string, string> dynamicParameters)
  3. На мой взгляд, я строю * 1016URL, основанный на том, что содержит dynamicParameters.Если действие вызывается с дополнительными параметрами, различными значениями, ... все это чисто передается этому iframe.

У меня проблемы с шагами 1 и 2. Я неуверен, в каком формате должен быть URL (я создаю этот URL в другом месте с Url.Action() для записи), и я не уверен, как получить параметры в действии моего контроллера.

Я пробовалпара различных подходов с dynamic, dynamic[], Dictionary<string, string>, ... и до сих пор не повезло.Возможно ли что-то подобное вообще?

1 Ответ

3 голосов
/ 28 марта 2019

Когда ваши параметры очень динамичны, вам не нужно объявлять их в сигнатуре метода действия - вместо этого вы можете получить к ним доступ через Request.QueryString .Для Url.Action вы можете передать Dictionary<string, object> в качестве коллекции значений маршрута.Любые содержащиеся в нем параметры, которые не соответствуют объявленным параметрам маршрута, должны быть добавлены в строку запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...