我正在尝试使用ASP.NET编写一个Web应用程序,它在Web表单中采用数字货币值,然后在摘要表中显示该值。
我遇到了一个问题,无论我在模型中放置什么验证,我仍然可以输入字母和特殊符号,用户应该直接在网页上使用。
我在我的模型中使用以下代码并基于它我看不出我仍然能够输入非数值。
[Numeric]
[Min(1, ErrorMessage = "Please enter a valid number")]
[Required]
public Double GoalAmount { get; set; }
我可以做出任何改变吗?
视图看起来像这样。
@model WebUI.Models.CreateFundModel
@{
ViewBag.Title = "Create";
}
<div id="container_demo" >
<div id="wrapper">
<div id="login" class="animate form">
@using (Html.BeginForm()){
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<h1>Create Fund</h1>
<p>
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
</p>
<p>
@Html.LabelFor(m => m.GoalAmount)
@Html.TextBoxFor(m => m.GoalAmount)
@Html.ValidationMessageFor(m => m.GoalAmount)
</p>
<p>
@Html.LabelFor(m => m.ReleaseOn)
@Html.EditorFor(m => m.ReleaseOn)
@Html.ValidationMessageFor(m => m.ReleaseOn)
<script type="text/javascript">
$(document).ready(function () {
$("#date").datepicker({
showAnim: 'slideDown',
dateFormat: 'dd/mm/yyyy'
});
});
</script>
</p>
<p>
@Html.LabelFor(m => m.Frequency)
@Html.DropDownList("Frequency", string.Empty)
@Html.ValidationMessageFor(m => m.Frequency)
</p>
<p>
@Html.LabelFor(m => m.RecipiantAccount)
@Html.TextBoxFor(m => m.RecipiantAccount)
@Html.ValidationMessageFor(m => m.RecipiantAccount)
</p>
<p class="login button">
<input type="submit" value="Create" />
</p>
@Html.Partial("_LoginPartial")
}
</div>
</div>
</div>
答案 0 :(得分:0)
此验证发生在服务器端,您是否已将mvc应用程序配置为使用客户端验证?
请参阅the section "Enabling Client-Side Validation"
另见Client side validation for custom annotation Asp.Net MVC 4
答案 1 :(得分:0)
您可以尝试DataAnnotationsExtension。它有一些你可以使用的有用属性。