在这里,我正在应用模型验证,我想停止发布我的表单,但它不起作用

时间:2015-04-01 13:24:31

标签: jquery asp.net-mvc

我正在尝试的表单代码:

 @using (Html.BeginForm("ContactUs", "Home", FormMethod.Post, new { id = "frmContactUs", enctype = "multipart/form-data" }))
                {
                    <div class="form_style">
                        @Html.TextBoxFor(m => m.Name, new { @placeholder = "Name", @class = "inputType" })
                        @Html.ValidationMessageFor(m => m.Name)
                    </div>
                    <div class="form_style">
                        @Html.TextBoxFor(m => m.Email, new { @placeholder = "Email", @class = "inputType" })
                        @Html.ValidationMessageFor(m => m.Email)
                    </div>
                    <div class="form_style">
                        @Html.TextAreaFor(m => m.Message, new { @placeholder = "Message", @class = "inputType texArea", @style = "resize: none" })
                        @Html.ValidationMessageFor(m => m.Message)
                    </div>
                    <div class="form_style">
                        <input type="submit" class="inputType Sub_btn" id="btnContactUs" value="SUBMIT" />
                    </div>
                    <input type="hidden" id="hdnContactUs" value="@Url.Action("ContactUs", "Home")" />
                }

jquery ajax调用脚本:

var url = $('#hdnContactUs').val();
var Name = $('#Name').val();
var Email = $('#Email').val();
var Message = $('#Message').val();
$("frmContactUs").submit(function (e) {
    e.preventDefault(); //prevent default form submit
    $.ajax({
        url: url,
        data: { name: Name, email: Email, message: Message },
        success: function (data) {
            showMsg(data);
            return false;
        },
        cache: false
    }); 
    return false;
});

这里我想要模型验证,但我不想发布我的表单,目前它的帖子给我的控制器jsonresult:

 public JsonResult ContactUs(string Name, string Email, string Message)
    {
        JsonResult result = new JsonResult();

        return Json(result, JsonRequestBehavior.AllowGet);
    }

2 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您有$("frmContactUs")而不是$("#frmContactUs")。您忘记了#来自id。

答案 1 :(得分:0)

$("#frmContactUs").validate({
   submitHandler: function(form) {
             $(form).ajaxSubmit();
     }
});

希望这会对你有所帮助。 阅读此jqueryvalidation