awr*_*ley 0 validation asp.net-mvc
我有一个Ajax.BeginForm,它基本上由两个下拉列表和提交按钮组成.如果用户没有从两个下拉列表中选择一个选项,我希望MVC 3验证启动.
这是没有发生的.而是打开页面,其中ValidationMessages显示在ddls旁边,如果提交的数据无效,则不会显示验证摘要.
using (Ajax.BeginForm(MVC.Admin.TutorEditor.AddTutorCourse(Model.TutorName, 0, 0),
new AjaxOptions
{
UpdateTargetId = "TutorCourses",
OnBegin = "isValidPleaseWait",
LoadingElementId = "PleaseWait"
},
new { name = "AddTutorCourseForm", id = "AddTutorCourseForm" }))
{
Html.ValidationSummary("Sorry, there was an error. Please check below and try again:");
<fieldset>
<legend>Add Course</legend>
<div class="editor-label">
@Html.LabelFor(model => model.AllCourses)
@Html.DropDownList("CourseId", Model.AllCourses, "-- Choose Course --", new { style = "width:180px;" })
@Html.ValidationMessage("CourseId", "*: Required")
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TutorRoles)
@Html.DropDownList("TutorRoleId", Model.TutorRoles, "-- Choose Role --", new { style = "width:180px;" })
@Html.ValidationMessage("TutorRoleId", "*: Required")
</div>
<input type="submit" value="Add Course" />
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)
AddTutorCourse行动是:
[HttpPost]
public virtual ActionResult AddTutorCourse(string username, int CourseId, int TutorRoleId)
{
service.SetTutor(username);
if (CourseId == 0) ModelState.AddModelError("CourseId", "You did not choose a Course");
if (TutorRoleId == 0) ModelState.AddModelError("TutorRoleId", "You did not choose a Tutor Role");
if(ModelState.IsValid)
{
service.AddTutorToCourse(CourseId, TutorRoleId);
}
if (Request.IsAjaxRequest())
{
return PartialView(Views.TutorCoursesPartial, service.ViewModel);
}
else
{
return View(Views.Details, service.ViewModel);
}
}
Run Code Online (Sandbox Code Playgroud)
包含的脚本文件是:
<script id="script0" src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script id="script1" src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script id="script2" src="/Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<script id="script3" src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script id="script4" src="/jQueryUI/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
<script id="script5" src="/jQueryPlugins/Cookies/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript" src="/Scripts/jquery.unobtrusive-ajax.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么!?
d89*_*761 11
我也遇到了这个问题,最后我发现你需要在验证类中添加一个CSS样式.然后在页面首次打开时不会显示它:
.field-validation-valid { display: none; }
.validation-summary-valid { display: none; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5667 次 |
| 最近记录: |