[英]ASP.NET MVC request intercept and get model value
我有很多控制器,它们根据参数返回数据。
但是用户可以伪造发送给服务器的参数,因此我想拦截所有请求,并且如果模型返回的某些参数无效,则发出警告/错误。
控制器的示例标头是这个
[Intercept<CarModel>] <-- I want something like this, <CarModel> because the interceptor knows what type to cast the model when intercepted
public object Cards(CarModel model) {
我想创建这种属性,该属性拦截控制器,检查模型是否有效。
我该怎么办? 我用谷歌搜索,但没有找到类似的东西。
只需将您的验证代码付诸行动即可。 更好的是,继承自IValidatable接口,并在所有模型上实现HasPropertiesValid()。 然后,您只需调用model.HasPropertiesValid();。 在您开始行动时。
可验证的界面
interface IValidatable {
bool IsPropertiesValid();
}
模型实例
public class CarModel : IValidatable {
public string ModelName {get;set;}
public string ManufacturerName {get;set;}
public bool IsPropertiesValid() {
if(ManufacturerName == "Toyota") {
if(ModelName == "Prius") return true;
}
return false;
}
}
调节器
public ActionResult ToyotaCar(CarModel model){
if(!model.IsPropertiesValid()) return RedirectToAction("QuitMessingAround","CaughtYou");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.