问题描述
|
如果网址中的查询值没有键,例如:
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