问题是我的所有id都是加密的,我有两种方法可以解析Id从加密到加密(比如A8sdf = dsfs =)和返回所以当我发送时我必须在每个动作方法中执行此转换或收到EncryptedId
在到达操作方法之前,是否可以修改特定类型或属性名称的值?
答案 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);
}
}