如标题所述,在 ASP.NET MVC 中使用数据注释验证时是否可以生成属性的计算值(3)?
考虑信用卡示例。信用卡必须有到期日期,通常为月和年。在用户界面中,通常最好有选择
字段供用户选择,而不是文本
字段。然而,另一方面,当将数据发送到支付网关时,它通常是多种格式的一个字符串:M/Y
; MM/YY
; MM/YYYY
;等等
所以我想要完成的是在验证两个单独的日期后生成最终字符串。
无论如何,如果有人能指出我正确的方向,那就太棒了。我只使用了内置属性,所以我想当涉及到这样的自定义内容时,我想将我视为 nubski。
最佳答案
假设您有月份和年份属性:
[Range(1, 12)]
public int Month { get; set; }
[Range(2011, 2100)]
public int Year { get; set; }
您的 View 模型上可以有第三个属性,它代表所需的值:
public string ExpirationDate
{
get
{
return new DateTime(Year, Month, 1).ToString("MM/yyyy");
}
}
因此,一旦您的 View 模型成功通过验证,您就可以将 ExpirationDate 属性发送到支付网关:
[HttpPost]
public ActionResult Pay(PayViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
PaymentGateway.Pay(model.CCNumber, model.ExpirationDate);
return RedirectToAction("Success");
}
关于c# - 在 ASP.NET MVC (3) 中使用数据注释验证时是否可以生成属性的计算值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850770/