如何将MVC动作参数重新映射到另一个参数名称
本文关键字:参数 映射 另一个 新映射 MVC | 更新日期: 2023-09-27 18:07:35
我必须实现一个MVC动作,这样调用:
http://address/Controller/MyAction?resName=name
由硬编码的第三方调用以传递resName
。所以最简单的做法是这样做:
ActionResult MyAction( String resName )
{
,但我认为有一个名为resName
的参数是不酷的,我更喜欢有它的名字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
都将工作得很好。