私のモデル:
public class FPTAssetSummary : IValidatableObject
{
[Required]
[Display(Name = "New Version")]
public int ForatFrom { get; set; }
[Required]
[Display(Name = "Old Version")]
public int ForatTo { get; set; }
public List<FPTFORATExcel> FPTForatVersionList { get; set; }
public IEnumerable<ValidationResult> Validate(
ValidationContext validationContext)
{
if (ForatFrom <= ForatTo)
{
yield return new ValidationResult(
"Old version must be higher than the new version");
}
}
}
私のコントローラー:
[HttpPost]
public ActionResult ForatExcelCompare(FPTAssetSummary foratcompare)
{
var ExcelIDFrom = foratcompare.ForatFrom;
var ExcelIDTo = foratcompare.ForatTo;
return RedirectToAction("Index", new
{
ForatFrom = ExcelIDFrom,
ForatTo = ExcelIDTo
});
}
現在、ビュー (2 つのドロップダウン ボックス) から 2 つの整数を下のコントローラーに投稿し、2 つの値を 2 つのパラメーター (ForatFrom
およびForatTo
) を使用してインデックスに渡しています。ただし、私のIValidationObject
メソッドはValidationResult
メッセージを返しません。メソッドでモデルの状態を確認する必要があると思いますForatExcelCompare
が、モデルの状態が false の場合、エラー メッセージを表示して前のコントローラーに戻れるようにする必要があります。何か案は?