Ответ 1
Prefix
- это то, что вам нужно:
ActionResult MyAction( [Bind(Prefix="resName")] String resourceName )
Однако выполнение http://address/Controller/MyAction?resourceName=name
не будет работать с этой установкой.
Мне нужно реализовать действие 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
при каждом вызове моего действия.
Как мне переназначить имя параметра?
Prefix
- это то, что вам нужно:
ActionResult MyAction( [Bind(Prefix="resName")] String resourceName )
Однако выполнение http://address/Controller/MyAction?resourceName=name
не будет работать с этой установкой.
Другой вариант - использовать библиотеку ActionParameterAlias. Самое приятное в том, что оба имени для данного параметра будут работать.
например.
using ActionParameterAlias;
//...
[ParameterAlias("resourceName", "resName", Order = 1)]
ActionResult MyAction( String resourceName )
Тогда вызовы контроллера, такие как http://address/Controller/MyAction?resourceName=name
и http://address/Controller/MyAction?resName=name
, будут работать нормально.