Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 my Ajax.BeginForm中的OnSuccess脚本正在传递错误的数据_Javascript_Jquery_Ajax_Asp.net Mvc_Razor - Fatal编程技术网

Javascript my Ajax.BeginForm中的OnSuccess脚本正在传递错误的数据

Javascript my Ajax.BeginForm中的OnSuccess脚本正在传递错误的数据,javascript,jquery,ajax,asp.net-mvc,razor,Javascript,Jquery,Ajax,Asp.net Mvc,Razor,我正在开发一个as.net mvc web应用程序。我有以下Ajax.BeginForm:- @using (Ajax.BeginForm("AddServerToRack", "Server", new AjaxOptions { InsertionMode = InsertionMode.InsertBefore, UpdateTargetId = "result", LoadingElementId = "progressdialog", HttpMeth

我正在开发一个as.net mvc web应用程序。我有以下Ajax.BeginForm:-

@using (Ajax.BeginForm("AddServerToRack", "Server", new AjaxOptions

{
    InsertionMode = InsertionMode.InsertBefore,
    UpdateTargetId = "result",
    LoadingElementId = "progressdialog",
    HttpMethod= "POST"
    ,
    OnSuccess = "addserver",
    OnFailure = "createfail"




}))
{
它调用以下操作方法:-

  [HttpPost]
        [ValidateAntiForgeryToken]
        [CheckUserPermissions(Action = "Edit", Model = "Server")]
        [OutputCache(CacheProfile = "NoCache")]
        public ActionResult AddServerToRack(AddServerToRack s)
        {


            try
            {
                //code goes here
                repository.Save();

                return Json(new { IsSuccess = true, Update="",description = "Server Added Successfully.",rackid = s.rackID }, JsonRequestBehavior.AllowGet);

            }
            catch (DbUpdateConcurrencyException exception)
            {


                return Json(new { IsSuccess = false, description = "Record was Modified by another User." }, JsonRequestBehavior.AllowGet);




            }

            catch (DbUpdateException exception)
            {

                string error = String.IsNullOrEmpty(exception.InnerException.InnerException.Message) ? exception.InnerException.ToString() : exception.InnerException.InnerException.Message.ToString();
                return Json(new { IsSuccess = false, description = "Error occurred." + error }, JsonRequestBehavior.AllowGet);


            }
            catch (Exception e)
            {
                return Json(new { IsSuccess = false, description = "Error occurred." }, JsonRequestBehavior.AllowGet);
            }



        }
以及以下OnSuccess脚本:-

function addserver(data) {
    if (data.IsSuccess = true) {

        $('#progress').show();
        $.ajax({
            url: '/Rack/RackServer',
            type: 'GET',
            data: {
                id: data.rackid
            },

            dataType:'html' ,
            //error: function (xhr) {
            //    alert('Error: ' + xhr.statusText);
            //},
            success: function (result) {
                $('#RackDetails').html(result);
                $('#progress').hide();
            },

        });

        jAlert(data.description, 'Creation Confirmation');
    }
    else if (data.IsSuccess = false)
    {
        jAlert(data.description,'Error');

    }
}
但我面临的问题是,脚本中的
$.ajax({
调用)将在data.issucess值为false时执行。因此,脚本似乎不会执行if语句检查,并且将始终执行ajax调用,即使issucess不等于true。 那么,有人能给我一些建议吗


如果您的if语句错误,请注意:

if (data.IsSuccess = true)
应该是:

if (data.IsSuccess == true)
您在addserver()方法中使用了“=”而不是“=”进行比较

使用如下

if (data.IsSuccess == true)
还是简单

    if (data.IsSuccess)