我有一個非常奇怪的問題與不顯眼的驗證。不顯眼的驗證不工作在一些元素
我有三個stirng屬性的必需屬性的模型。我爲兩個字段使用TextBoxFor,最後使用TextAreaFor。驗證工作在TextArea上,但不在輸入字段上。查看源代碼,我可以看到驗證添加的屬性不在輸入上,而是在文本框上。另外,如果我將數據輸入到文本框並提交,它將發佈和MVC模型綁定DOES正確地將ModelState.IsValid設置爲false,並且ValidationSummary顯示這些字段。
什麼會導致驗證不起作用的輸入元素?
型號:
public class TestModel : IEmail {
public string BCCAddresses {
get;
set;
}
[Required]
public string BodyFormat {
get;
set;
}
public string CCAddresses {
get;
set;
}
[Required]
public string FromAddress {
get;
set;
}
[Required]
public string SubjectLineFormat {
get;
set;
}
}
查看:
@section head {
<script src="@Url.Content("~/Scripts/jquery.1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
}
@{
Html.EnableClientValidation();
Html.EnableUnobtrusiveJavaScript();
}
@using (Html.BeginForm("Edit", "Email", FormMethod.Post)) {
<table>
<tr>
<td>From</td>
<td>@Html.TextBoxFor(x => x.FromAddress, new { style = "width: 500px;" })</td>
</tr>
<tr>
<td>CC</td>
<td>@Html.TextBoxFor(x => x.CCAddresses, new { style = "width: 500px;" })</td>
</tr>
<tr>
<td>BCC</td>
<td>@Html.TextBoxFor(x => x.BCCAddresses, new { style = "width: 500px;" })</td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td colspan="2">Subject Line</td>
</tr>
<tr>
<td colspan="2">@Html.TextBoxFor(x => x.SubjectLineFormat, new { style = "width: 500px;" })</td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td colspan="2">Body Form</td>
</tr>
<tr>
<td colspan="2">@Html.TextAreaFor(x => x.BodyFormat, new { style = "width: 500px; height: 200px" })</td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td colspan="2">
<input id="ApplyChanges" type="submit" class="NavigationButton" value="Save Changes" />
<input id="CancelChanges" type="button" class="NavigationButton" value="Cancel Changes" />
</td>
</tr>
<tr>
<td colspan="2">
@Html.ValidationSummary()
</td>
</tr>
<tr><td colspan="2"> </td></tr>
</table>
}
瀏覽器源:
<form action="/url" method="post">
<table>
<tbody><tr>
<td>From</td>
<td><input style="width: 500px;" id="FromAddress" name="FromAddress" value="" type="text"></td>
</tr>
<tr>
<td>CC</td>
<td><input style="width: 500px;" id="CCAddresses" name="CCAddresses" value="" type="text"></td>
</tr>
<tr>
<td>BCC</td>
<td><input style="width: 500px;" id="BCCAddresses" name="BCCAddresses" value="" type="text"></td>
</tr>
<tr><td colSpan="2"> </td></tr>
<tr>
<td colSpan="2">Subject Line</td>
</tr>
<tr>
<td colSpan="2"><input style="width: 500px;" id="SubjectLineFormat" name="SubjectLineFormat" value="" type="text"></td>
</tr>
<tr><td colSpan="2"> </td></tr>
<tr>
<td colSpan="2">Body Form</td>
</tr>
<tr>
<td colSpan="2"><textarea style="width: 500px; height: 200px;" id="BodyFormat" cols="20" rows="2" name="BodyFormat" data-val-required="The BodyFormat field is required." data-val="true"></textarea></td>
</tr>
<tr><td colSpan="2"> </td></tr>
<tr>
<td colSpan="2">
<input id="ApplyChanges" class="NavigationButton" disabled="disabled" value="Save Changes" type="submit">
<input id="CancelChanges" class="NavigationButton" value="Cancel Changes" type="button">
</td>
</tr>
<tr>
<td colSpan="2">
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display: none;"></li>
</ul></div>
</td>
</tr>
<tr><td colSpan="2"> </td></tr>
</tbody></table>
</form>
你能告訴我們一些相關的代碼嗎? – 2012-03-03 01:41:54
@ChaseFlorell新增 – Andy 2012-03-03 01:59:27
我們來看看瀏覽器的查看源代碼。 – Jed 2012-03-03 02:13:41