日期:2014-05-17  浏览次数:20451 次

ASP.NET MVC中 关于 客户端验证机制的问题
我现在遇到了一个比较棘手的问题,是关于MVC中自带的客户端验证问题。

网站是 基于 asp.net mvc 3 开发的。

我的一个页面 有3个ajax表单 他们都是通过ajax.beginfrom提交的 通过返回json数据继续操作 

现在2个表单的客户端验证是正确的 但另一个有点特殊,这个表单是我通过$.ajax的方式返回给页面

某个HTML元素里的,它的客户端验证是无效的,折腾了半天没有解决。

要返回的HTML页面代码:
HTML code

<div class="div_bm" id="msg_f" style="padding: 5px 10px; width: auto; margin: 0;
    height: 336px;">
    @using (Ajax.BeginForm("AddSubscribe", "Home", null, new AjaxOptions { HttpMethod = "Post", OnSuccess = "success_3" }, new { id = "subForm" }))
    {
        <div id="sub_f" style="float: right; padding-top: 30px; margin-top: 5px;">
            <input type="hidden" name="infoid" value="@(ViewData["infoid"])"/>
            <table width="380px" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                    <th style="width: 100px;">
                        您的称呼:
                    </th>
                    <td>
                        <input data-val="true" data-val-required="请输入您的称呼" id="model_subName" name="model.subName" />
                        <span class="field-validation-valid" data-valmsg-for="model.subName" data-valmsg-replace="true">
                        </span>
                    </td>
                </tr>
                <tr>
                    <th>
                        您的电话:
                    </th>
                    <td>
                        <input data-val="true" data-val-required="请输入您的电话" id="model_subTel" name="model.subTel" />
                        <span class="field-validation-valid" data-valmsg-for="model.subTel" data-valmsg-replace="true">
                        </span>
                    </td>
                </tr>
                <tr>
                    <th>
                    </th>
                    <td>
                        <a href="javascript:void(0);" class="publicbot" onclick="$('#subForm').trigger('submit');">预约</a>
                    </td>
                </tr>
            </table>
        </div>
    }
</div>



主页调用的4个JS文件
  <script src="/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
  <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
  <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
  <script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>

求各位高手帮忙解决。

------解决方案--------------------
很明显,你少了验证的JS

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>