Подтвердить что ты не робот

Как переназначить параметр действия MVC на другое имя параметра?

Мне нужно реализовать действие MVC, которое вызывается следующим образом:

http://address/Controller/MyAction?resName=name

и он вызывает третью сторону, которая жестко запрограммирована на передачу resName. Таким образом, наивный способ состоит в следующем:

ActionResult MyAction( String resName )
{

но я думаю, что с параметром resName является uncool, и я бы предпочел, чтобы он назывался resourceName. Если я просто переименую параметр, то отображение параметров MVC больше не работает, и при вызове моего действия всегда resourceName устанавливается на null.

Я попробовал BindAttribute следующим образом:

ActionResult MyAction( [Bind(Include="resName")] String resourceName )

но resourceName по-прежнему null при каждом вызове моего действия.

Как мне переназначить имя параметра?

4b9b3361

Ответ 1

Prefix - это то, что вам нужно:

ActionResult MyAction( [Bind(Prefix="resName")] String resourceName )

Однако выполнение http://address/Controller/MyAction?resourceName=name не будет работать с этой установкой.

Ответ 2

Другой вариант - использовать библиотеку ActionParameterAlias. Самое приятное в том, что оба имени для данного параметра будут работать.

например.

using ActionParameterAlias;
//...

    [ParameterAlias("resourceName", "resName", Order = 1)]
    ActionResult MyAction( String resourceName )

Тогда вызовы контроллера, такие как http://address/Controller/MyAction?resourceName=name и http://address/Controller/MyAction?resName=name, будут работать нормально.