我在局部视图中创建了一个相当简单的表单,并在jquery对话框中加载表单。视图与模型紧密相关。当用户点击提交按钮而不输入任何输入时,我需要显示验证消息。
<div>
<form method="post" enctype="multipart/form-data" id="ssimForm" action="Home/ProcessUploadedFile"
onsubmit="return false;">
<div>
<h3>
Select the file to be uploaded :</h3>
<span>
<input type="file" name="UploadFileName" id="UploadFileName" /></span>
</div>
<div>
<h3>
Select the date range :</h3>
<span class="uslabel">From Date(MM/dd/yyyy): </span>
<input class="usdate" id="usfromdate" name="StartDate" type="date" />
<span class="uslabel">To Date(MM/dd/yyyy): </span>
<input class="usdate" id="ustodate" name="EndDate" type="date" />
</div>
<div>
<br />
<input type="submit" id="submitButton" name="submitButton" value="Process File" />
</div>
@Html.ValidationSummary()
<div class="message-success">
<span>@ViewBag.Confirmation</span>
</div>
<div class="message-error">
<span>@ViewBag.Error</span>
</div>
</form>
</div>
现在出现了实际问题。当我提交表单时,我能够看到填充了消息的validationSummary对象,但它们没有在屏幕上呈现。
如果我用jquery ajax调用的响应替换对话框的内容,我可以看到消息,该响应从服务器端获取整个视图。我不想采用这种方法,因为我认为这不是在MVC中返回验证摘要的正确方法。
我错过了什么吗?任何帮助表示赞赏。
答案 0 :(得分:0)
我不知道为什么你没有@using (Html.BeginForm()) { }
阻止。
以下是我的博客文章,可以快速简便地为MVC3 +设置验证摘要+不引人注目的验证。
http://geekswithblogs.net/stun/archive/2011/01/28/aspnet-mvc-3-client-side-validation-summary-with-jquery-validation-unobtrusive-javascript.aspx