Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止表单提交,使用Ajax检查记录,如果有记录,请继续ASP.NET MVC_Javascript_Jquery_Asp.net Mvc 2 - Fatal编程技术网

Javascript 防止表单提交,使用Ajax检查记录,如果有记录,请继续ASP.NET MVC

Javascript 防止表单提交,使用Ajax检查记录,如果有记录,请继续ASP.NET MVC,javascript,jquery,asp.net-mvc-2,Javascript,Jquery,Asp.net Mvc 2,我现在正在听一个表单提交我的一个观点,它正在检查记录。我想做的是,如果有记录允许表单实际呈现视图,如果不只是显示错误页面。显然,continue代码所在的“else”是空的。。有什么办法可以做到这一点吗 下面是实际截取并发布到AJAX的JS函数 $('form#search-form').submit(function (evt) { $.ajax({ type: 'POST', url: '<%: Url.Actio

我现在正在听一个表单提交我的一个观点,它正在检查记录。我想做的是,如果有记录允许表单实际呈现视图,如果不只是显示错误页面。显然,continue代码所在的“else”是空的。。有什么办法可以做到这一点吗

下面是实际截取并发布到AJAX的JS函数

    $('form#search-form').submit(function (evt) {
        $.ajax({
            type: 'POST',
            url: '<%: Url.Action("Details","SpecialtyTrack") %>',
            data: $(this).serialize(),
            success: function (response) {
                if (response.results == 0) {
                    $('#error').fadeOut('fast');
                    $("#error").fadeIn('slow');
                }
                else {
                    $('#error').hide();

                };

            },
            error: function (response) {
                alert(response);
            }
        });
        evt.preventDefault();

    });

在catch中设置Response.StatusCode=500,它将在jQuery的ajax调用中触发错误回调。然后,您可以在发出警报的位置以任何方式处理错误

public ActionResult Details(string searchParameter)
{

    var sP = this.spRepo.findSpecialtyTrack(searchParameter);
    try
    {
        var record = sP.FirstOrDefault();
        ViewData["directoryID"] = record.DirectoryArtItem.DirectoryCanvass.DirectoryEdition.DirectoryID;
        ViewData["directoryName"] = record.DirectoryArtItem.DirectoryCanvass.DirectoryEdition.Directory.Name;

        return View(sP);
    }
    catch (NullReferenceException)
    {
        Response.StatusCode = 500;
        return Json(new {
            results = 0
        });
    }
}

我将把它作为两个动作来解决 一个作为验证部分,另一个作为ajax请求(如果必须)

<% using Ajax.BeginForm("ValidateAction",new AjaxOptions{ UpdateId="HolderWhereSubmitButtonWillBe"}){
%>

validation page
<%}%>

验证页
ValidateAction的响应作为部分视图返回

<div id="HolderWhereSubmitButtonWillBe">
here will be the ajax call code and button to submit via ajax(all as partail view send as reponse for validation
</div>

下面是通过ajax提交的ajax调用代码和按钮(全部作为部分视图发送作为响应进行验证
我还想补充一些

如果(!modelstate.isvalid)返回视图()

只是为了确保

<div id="HolderWhereSubmitButtonWillBe">
here will be the ajax call code and button to submit via ajax(all as partail view send as reponse for validation
</div>