0

我正在尝试使用 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>
4

2 回答 2

0

您可以尝试DataAnnotationsExtension。它有一些您可以使用的有用属性。

于 2013-06-29T16:15:54.440 回答
0

此验证发生在服务器端,您是否已将 mvc 应用程序配置为使用客户端验证?

请参阅“启用客户端验证”部分

另请参阅自定义注释 Asp.Net MVC 4 的客户端验证

于 2013-06-29T15:21:37.637 回答