asp.net mvc:在视图到达action方法之前修改一些来自视图的值

时间:2009-12-18 09:55:32

标签: asp.net-mvc

问题是我的所有id都是加密的,我有两种方法可以解析Id从加密到加密(比如A8sdf = dsfs =)和返回所以当我发送时我必须在每个动作方法中执行此转换或收到EncryptedId

在到达操作方法之前,是否可以修改特定类型或属性名称的值?

1 个答案:

答案 0 :(得分:1)

您可以编写一个model binder来解密该值:

public class MyModelBinder : DefaultModelBinder
{
    protected override void SetProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, object value)
    {
        // Test if it is the Id property
        if (propertyDescriptor.Name == "Id")
        {
            // Remark: MyDecryptFunction must return the same type
            value = MyDecryptFunction(value);
        }
        base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
    }

}