如何解决教ASP.NET MVC将无键查询值视为布尔标志
| 如果网址中的查询值没有键,例如:http://site.com?update
并且一个动作具有名为update的布尔参数。
如果URL中存在\'update \'值,我希望将update参数设为接收值value1ѭ,否则为false
。
例:
动作:public ActionResult MyAction(string name,bool update) {...}
网址:http://site.com/path?name=Bob&update
预计致电:controller.MyAction(\"Bob\",true);
如果URL是http://site.com/path?name=Bob
(注意没有更新)
那么预期的买入价是controller.MyAction(\"Bob\",false);
没什么大不了的,我知道我可以得到Request.Query
并用key = null来查找值,但是我想通过框架来完成它。
我该从哪里开始?
我正在使用ASP.NET MVC 3
解决方法
通过框架进行此操作可能需要您使用相应的价值提供者工厂来实现自己的价值提供者,并将工厂添加到ValueProviderFactories。您可能会类似于现有的QueryStringValueProviderFactory和QueryStringValueProvider来实现它,然后添加自己的GetValue实现,其中包括要根据是否为查询字符串键提供值来返回true / false的其他逻辑。这是添加值提供者的链接,并在框架中签出QueryStringValueProvider。
http://mgolchin.net/posts/19/dive-deep-into-mvc-ivalueprovider
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。