我有一个问题/答案表单提交,其中需要动态生成问题和答案。数据库中的位字段指示表单上是否需要此字段。以下是代码的视图模型:
[ResponseValidator]
public class UserResponse
{
public int ResponseId { get; set; }
public string Question { get; set; }
public string Answer { get; set; }
public bool Required { get; set; }
private class ResponseValidator : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext context)
{
var response = value as UserResponse;
return !(response.Required && String.IsNullOrEmpty(response.Question))
? null
: new ValidationResult(FormatErrorMessage(String.Format(
"{0} is required.",
response.Question)));
}
}
}
问题是如果不使用隐藏元素,则不会保留Required
属性的状态。但是,我不希望客户端能够修改此隐藏字段并提交无效的问题答案。如果不对UserResponse
进行数据库查找,这是可能的,还是最优雅的解决方案?