【发布时间】:2011-02-08 19:22:44
【问题描述】:
我正在使用 xval 在我的 asp.net mvc2 web 应用程序中使用客户端验证。尽管我在数字字段中输入文本时出现错误,但它仍会尝试将表单发布到数据库。不正确的值被 0 替换并保存到数据库中。但相反,它甚至不应该尝试提交表单。有谁能帮帮我吗?
我设置的属性如下:
[Property]
[ShowColumnInCrud(true, label = "FromPriceInCents")]
[Required]
//[Range(1, Int32.MaxValue)]
public virtual Int32 FromPriceInCents{ get; set; }
捕获请求的控制器如下所示;这部分我没有收到任何错误。
[AcceptVerbs(HttpVerbs.Post)]
[Transaction]
[ValidateInput(false)]
public override ActionResult Create()
{
//some foo happens
}
我的视图如下所示:
<div class="label"><label for="Price">FromPrice</label></div>
<div class="field">
<%= Html.TextBox("FromPriceInCents")%>
<%= Html.ValidationMessage("product.FromPriceInCents")%></div>
在视图的最后,我有以下规则,它在 html 代码中生成正确的验证规则
<%= Html.ClientSideValidation<Product>("Product") %>
希望有人能帮我解决这个问题,在此先感谢!
编辑:4 月 19 日 我刚刚发现有一个普通按钮正在使用而不是输入 type="Button" 这可能是问题吗?
<button class="save" type="submit" name="save"><span>Opslaan</span></button>
【问题讨论】:
-
为什么您的 ValidationMessage("product.FromPriceInCents") 但您的文本框使用的是“FromPriceInCents”?这似乎很可疑。你有什么理由不使用强类型的助手? ValidationMessageFor(x=>x.FromPriceInCents)
-
我将文本框和验证消息更改为强类型助手。但是这个变化不会影响验证,但是很好的提示!
标签: c# javascript asp.net-mvc validation xval