动态语言运行时 – NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

Nancy通过动态变量将我的查询字符串和表单值传递给我的处理程序.下面的示例显示了通过Nancy请求传递给POST处理程序的表单值,例如Request.Form.xxx.

处理器

Post["/"] = _ =>
    {
        var userId = (string) Request.Form.userid;
        if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
        return HttpStatusCode.OK;
    };

您可以看到我正在将userid转换为字符串,然后使用字符串扩展方法来检查值是null还是空字符串(相当于string.IsNullOrEmpty()).

我更喜欢的是在动态类型上使用扩展方法,以便在执行任何其他操作之前执行我的健全性检查.我想要这样的代码

if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;

但是,您不能拥有动态类型的扩展方法.此外,您无法通过反射检查是否存在属性.欢迎来到DLR.

执行预检查以确保将预期的查询/表单值传递给我的Nancy处理程序的最简单,最安全的方法是什么?

谢谢

解决方法

Request.Form.userid.HasValue

适用于所有DynamicDictionary成员,例如表单,查询和路由参数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Mip是什么意思以及作用有哪些
怎么测试Mip页面运行情况
MIP安装的具体步骤有哪些
HTML添加超链接、锚点的方法及作用详解(附视频)
MIP的规则有哪些
Mip轮播图组件中的重要属性讲解
Mip的内联框架组件是什么
怎么创建初始的MIP配置及模板文件
HTML实现多选框及无法提交多数据的原因分析(附视频)
HTML如何设置复选框、单选框以及默认选项?(图文+视频)
怎么使用MIP组件
Div垂直居中效果怎么实现
HTML如何实现视频在线播放
如何使用Mip代码校验工具
Mip中弹出层组件是什么
如何用HTML实现简单按钮样式
Mip中快速回顶组件怎么用
Div内容居中效果如何实现
Div水平居中效果怎么实现
Mip中列表组件怎么用