ServiceStack.Net的多个可选参数
我正在尝试使用ServiceStack.Net实现具有多个可选参数的服务
目前我的路线看起来像这样
Routes.Add("/save/{Year}/{Week}");
我想像这样支持uris:
/保存/ 2010/12 /星期一/ 4 /日/ 6 /日/ 7
即星期一= 4,星期二= 6,星期三= 7
但是我希望能够忽略几天,即调用服务的人可以决定是否要保存每天的每个值…
即像这样缺少参数值
?星期一= 4&周三= 7&周五= 6
当然,一种解决方案是使用以下路由,当我不想保存值时只传递0。
Routes.Add("/save/{Year}/{Week}/{Monday}/{Tuesday}}/{Weds}/{Thurs}/{Fri}/{Sat}/{Sun}");
但是…..有没有更好的方法来实现这个function?
当您的Route需求开始变得过于复杂时,最终只需添加一个通配符路径就可以了,这样您就可以自己解析其余的查询字符串。 即在这种情况下,由于查询字符串的第一部分保持不变,您可以添加通配符映射来存储查询字符串的可变部分,即:
Routes.Add("/save/{Year}/{Week}/{DaysString*}");
ServiceStack仍将使用Year和Week字段(以及在查询字符串中传递的任何字段)填充部分DTO。 url的剩余变量部分存储在DaysString中 ,然后您可以自由地手动解析。 所以上面的映射将能够匹配url,如:
/保存/ 2010/12 /星期一/ 4 /日/ 6?周三= 7
并在Request DTO中填充以下变量:
- 年份:2010年
- 周:12
- 星期三:7
- DaysString:星期一/ 4 /星期二/ 6
- asp.net gridview checkall和uncheckall在一个标题复选框中
- 预留实例模式下Azure网站的新Azure分布式缓存
- 如何在asp.net中使用Windows身份validation获取用户名?
- 在没有第三方框架的情况下从HttpWebResponse反序列化JSON的方法
- 将水印图像放在其他图像上(C#,ASP.Net)
- Trace.Write()和Trace.TraceInformation()之间的区别
- 有没有办法从FCKEditor中删除所有不必要的MS Word格式
- ASP.NET MVC 3是否已准备好用于业务应用程序
- 添加到htmlAttributes以获取自定义ActionLink帮助程序扩展