可以在ASP.NET MVC 3中的ValidationAttribute
内访问HttpContext
?可以在ASP.NET MVC中的ValidationAttribute中访问HttpContext吗?
我需要测试我的路由数据中是否有匹配项,以便在验证器上返回true。
感谢
可以在ASP.NET MVC 3中的ValidationAttribute
内访问HttpContext
?可以在ASP.NET MVC中的ValidationAttribute中访问HttpContext吗?
我需要测试我的路由数据中是否有匹配项,以便在验证器上返回true。
感谢
是的,你可以访问静态的HttpContext.Current属性来获取当前的HTTP上下文。
此属性可能会返回null,具体取决于您在哪个线程上运行验证,或者在非HTTP请求中(如在单元测试中)。
您很可能会想要将您对电话的电话摘要进行抽象化,以创建更多可测试的代码。要做到这一点,有你的抽象成员返回HttpContextBase,像这样:
return new HttpContextWrapper(HttpContext.Current);
这种抽象将允许您在模拟HTTP上下文的基础情况下通过更容易测试。
你可以但为什么不使用RemoteValidationAttribute呢?
我明白你怎么会认为这是理想的,但我实际上需要对表单加载进行验证,(如果满足某个条件,那么验证将存在于字段中,否则它不会),并且ajax不是这是适合的解决方案。 – GONeale
好的谢谢,我想也许我需要通过一个基础成员或参数访问它。欢呼的洞察力。 – GONeale