【发布时间】:2012-04-17 10:02:27
【问题描述】:
我有一个类问题,其属性如下:
[Required]
public string Subject { get; set; }
[Required]
public string Content { get; set; }
我尝试做一些服务器验证。我已经包含了这些脚本:
<script src="@Links.Scripts.jquery_validate_min_js" type="text/javascript"></script>
<script src="@Links.Scripts.jquery_validate_unobtrusive_min_js" type="text/javascript"></script>
这是“创建”视图:
<dt><span>Question title*</span>please be specific but brief</dt>
<dd>@Html.TextBoxFor(m => m.Subject, new { @class = "boxsizingBorder" }) @Html.ValidationMessageFor(m=>m.Subject)</dd>
<dt><span>Question details</span></dt>
<dd>@Html.TextAreaFor(m => m.Content, 7, 30, new { @class = "boxsizingBorder" })@Html.ValidationMessageFor(m => m.Content)</dd>
当我尝试发布这样的新问题时:
$('#saveChanges').click(function () {
$('#createQuestion').submit();
});
(#saveChanges 是我的 span 的 id,#createQuestion 是我的表单的 id)
如果我不填写示例主题字段,我会暂时看到一条错误消息(必填字段等),但无论如何都会发布问题。这是因为我试图使用 jQuery 或什么来发布表单吗?
在这种情况下,服务器验证应该如何工作?
【问题讨论】:
-
表格是怎么发出来的?通过 Html.BeginForm 或通过标准 标签?
-
如果你执行一个简单的帖子(使用 它确实有效。我过去遇到过类似的事情,会挖掘我的代码,看看我是否找到一些东西。(是否与在表单的 submit() 函数中调用验证有关。
-
也许这会解决你的问题stackoverflow.com/questions/5618247/…
-
正是——当我使用“标准”方式时,它的工作方式。
-
只需添加一个表单提交函数,发出 validate() 调用并相应地返回 true 或 false。 $('#form').submit(function() { ..... });
标签: c# jquery asp.net-mvc asp.net-mvc-3 razor