【发布时间】:2011-03-31 09:45:19
【问题描述】:
我有一个带有简单模式弹出窗口的视图。您单击一个超链接,它会弹出窗口,如果您尝试提交弹出的表单而不填写任何信息,它将在文本框旁边显示适当的验证错误消息。如果您关闭模式弹出窗口并再次单击超链接,则单击提交时似乎没有进行客户端验证。它只是让它被提交,然后它会在服务器端检查时捕获它。为什么打开一个模式弹出窗口然后关闭它,然后第二次重新打开会使验证停止工作?我正在使用SimpleModal Demos 演示的基本 osx 模式。任何建议将不胜感激。我已经检查了该网站,但如果有人以前的帖子可能会有所帮助,我也将不胜感激。
这是我的部分视图文件:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NSS.Models.Company>" %>
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<fieldset>
<legend>New Company</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Company_Name)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Company_Name)%>
<%: Html.ValidationMessageFor(model => model.Company_Name)%>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Company_Phone)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Company_Phone)%>
<%: Html.ValidationMessageFor(model => model.Company_Phone)%>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Company_Fax)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Company_Fax)%>
<%: Html.ValidationMessageFor(model => model.Company_Fax)%>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Company_Website)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Company_Website)%>
<%: Html.ValidationMessageFor(model => model.Company_Website)%>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
该部分在 .aspx 块中呈现:
<div id='container'>
<div id='content'>
<div id='osx-modal'>
<input type='button' name='osx' value='Demo' class='osx demo'/>
</div>
<!-- modal content -->
<div id="osx-modal-content">
<div id="osx-modal-title">Create a new Company</div>
<div class="close"><a href="#" class="simplemodal-close">x</a></div>
<div id="osx-modal-data">
<h2>Create a new Company</h2>
<% Html.RenderPartial("CreateForm", new NSS.Models.Company()); %>
<p><button class="simplemodal-close">Close</button> <span>(or press ESC or click the overlay)</span></p>
</div>
</div>
</div>
</div>
这是我的验证码:
public class Company_Validation
{
[Required(AllowEmptyStrings=false, ErrorMessage = "Company Name is required")]
[StringLength(50, ErrorMessage = "Company Name may not be longer then 50 characters")]
public string Company_Name { get; set; }
}
【问题讨论】:
标签: asp.net-mvc ajax validation modal-dialog simplemodal