【发布时间】:2017-04-14 20:06:51
【问题描述】:
我有一个表格,其中包含一个收集美元金额的输入(例如:$5,000)
如何允许 $5,000 的输入不触发 (!ModelState.IsValid) 删除逗号 (,) 和 $ 进行 POST?
视图模型
public class FormViewModel
{
[Required, RegularExpression("[0-9,]")]
public int? Amount { get; set; }
}
查看
<form>
<input asp-for="Amount" />
<span asp-validation-for="Amount"></span>
<button type="submit">Submit</button>
</form>
控制器
[HttpPost]
public IActionResult PostForm(FormViewModel viewModel)
{
if (!ModelState.IsValid)
{
return View(viewModel)
}
else
{
//Post Form
}
}
【问题讨论】:
-
您可以制作 HTML 辅助方法以根据此条件从输入中提取您想要的任何内容
-
在属性上使用
[DataType(DataType.Currency)]属性
标签: c# asp.net forms asp.net-core asp.net-core-mvc