ASP.NET MVC中进行USD货币验证的一种解决方法是使用数据注解和正则表达式。
首先,在模型类中添加一个属性,用于保存货币金额,例如:
public class MyModel
{
[RegularExpression(@"^\d+(\.\d{1,2})?$", ErrorMessage = "请输入有效的金额")]
public decimal Amount { get; set; }
}
上述代码中,使用了RegularExpression
属性来定义一个正则表达式,该正则表达式可以检测输入的金额是否为有效的货币格式(最多两位小数)。
接下来,在视图中使用合适的表单控件显示该属性,例如:
@model MyModel
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Amount)
@Html.TextBoxFor(m => m.Amount)
@Html.ValidationMessageFor(m => m.Amount)
}
上述代码中,使用LabelFor
和TextBoxFor
来显示货币金额属性,并使用ValidationMessageFor
显示验证错误信息。
最后,在控制器中处理提交的表单数据,例如:
[HttpPost]
public ActionResult MyAction(MyModel model)
{
if (ModelState.IsValid)
{
// 执行合法的逻辑
}
else
{
// 显示验证错误信息
}
return View(model);
}
上述代码中,使用ModelState.IsValid
来检查模型数据是否通过验证。
这样,当用户提交表单时,ASP.NET MVC会自动进行货币验证,并在验证失败时显示错误信息。