2013-04-08 44 views
0

我有一个相当简单的表单,在部分视图中创建并在jQuery对话框中加载表单。该视图与模型紧密相关。当用户点击提交按钮而没有输入任何输入时,我需要显示验证消息。无法在MVC视图中显示来自@ Html.ValidationSummary()的验证消息

<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

我不知道你为什么没有@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

+0

感谢您的留言。实际的问题是IE浏览器通过ajax发布后重新填充模式窗口的方式。它剥离了表单标签。 http://forum.jquery.com/topic/is-jquery-stripping-form-tags – 2013-07-22 16:42:59

相关问题