繁体   English   中英

ASP.NET MVC请求拦截并获取模型值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM