Can the HttpContext be accessed within a ValidationAttribute in ASP.NET MVC?

前端 未结 2 353
灰色年华
灰色年华 2021-01-12 00:33

Can the HttpContext be accessed within a ValidationAttribute in ASP.NET MVC 3?

I need to test for something in my route data for a match in

相关标签:
2条回答
  • 2021-01-12 00:39

    Yes, you can access the static HttpContext.Current property to get the current http context.

    This property may return null depending on what thread you are running your validation on, or in a non http request such as in a unit test.

    You will most likely want to abstract away the call you make to .Current in order to create more testable code. To do this, have your abstracted member return an HttpContextBase, like this:

    return new HttpContextWrapper(HttpContext.Current);
    

    This abstraction will allow you to pass in mock http context base instances for easier testing.

    0 讨论(0)
  • 2021-01-12 00:56

    You can but why don't you use a RemoteValidationAttribute instead?

    0 讨论(0)
提交回复
热议问题