我会尝试将代码保持在最低限度。 在我使用c#的MVC3应用程序中,我在局部视图中有一个表单,在主视图中有一个提交按钮。我在部分视图中使用的模型属性上有[required]属性,并且在相关的javascript文件中设置了规则。 但是当用户a没有在表单中输入任何数据时,不执行验证并继续应用程序。 我认为以下步骤是正确的。 我在主视图中引用了Javascript文件。 表单ID在此javascript文件中引用,以及主视图中提交输入的输入ID。
模型属性示例:
[Required]
[ScaffoldColumn(true)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
[Display(Name = "Expected Return Date to Customer")]
public DateTime? ExpectedReturnedToCustomer { get; set; }
部分视图中的表单标记:
<form id="multipleenroutetoltslab" method="post"
通过@ {Html.RenderPartial();}
调用部分视图用于提交的输入标记。
<input type="submit" style="width:100%;" class="styledbutton" id="MultiSubBtn" value="Submit" />
主视图中的Javascript文件引用(包的一部分):
.Add("~/Scripts/CalibrationViewer/MultipleEnRouteToLtsLab.js")
Javascript文件:
$(document).ready(function () {
$('#MultiSubBtn').click(function () {
$('#multipleenroutetoltslab').validate({
errorClass: 'field-validation-error',
errorPlacement: function (error, element) { //place the error method after the date picker component
var trigger = element.next('.ui-datepicker-trigger');
error.insertAfter(trigger.length > 0 ? trigger : element);
},
rules: {
SentBy: {
required: true,
maxlength: 255
},
DateSentToLtsLab: {
required: true,
dateFormat: true
},
ExpectedReturnedToCustomer: {
required: true,
dateFormat: true
}
},
视图部分视图:
@model EnRouteToLts_RecByLts
<form id="multipleenroutetoltslab" method="post">
<p>
@Html.LabelFor(m => m.SentBy)
@Html.TextBoxFor(M => M.SentBy, new { disabled = "disabled", @readonly = "readonly" })
</p>
<p>
@Html.LabelFor(m => m.DateSentToLtsLab)
@Html.TextBox("DateSentToLtsLab", Model.DateSentToLtsLab.HasValue ? Model.DateSentToLtsLab.Value.ToShortDateString() : DateTime.Now.ToShortDateString(), new { disabled = "disabled", @readonly = "readonly" })
</p>
<p>
@Html.LabelFor(m => m.ExpectedReturnedToCustomer)
@Html.TextBox("ExpectedReturnedToCustomer", Model.ExpectedReturnedToCustomer.HasValue ? Model.ExpectedReturnedToCustomer.Value.ToShortDateString() : null, new { @class = "date-picker" })
</p>
</form>
如果需要,javascript文件还有更多代码。 我在$(&#39; #MultiSubBtn&#39;)之后发出警报。单击(function(){并且它被触发,因此正在访问文件但是没有应用规则。 另外应该注意的是,当数据以表格形式输入时,它会到达Post动作。
没有错误。