【问题标题】:Ajax request return valueajax请求返回值
【发布时间】:2011-09-26 08:07:59
【问题描述】:

我有一个对我的控制器操作的 Ajax 调用,如下所示:

var m = $.ajax({
        mtype: "GET",
        url: '@Url.Action("GetBrandForValidation")',
        data: { actionparameter: value },
        async: false,
        cache: false
});

如您所见,我将 actionparameter 返回给我的控制器,控制器必须返回 true 或 false,这必须是我的“m”值,但我无法让它工作。有任何想法吗?

控制器代码:

public virtual JsonResult GetBrandForValidation(string actionparameter)
{
    var vendorId = _service.GetVendorIdByUsername(GetUserName());
    bool k;
    var brands = _service.GetBrandsByVendor(vendorId);
    var brand = new BrandsViewModel();
    brand.BrandName = "Opret ny Brand...";
    brands.Add(brand);

    foreach (var brandsViewModel in brands)
    {
        if (brandsViewModel.BrandName == "Intet")
        {
            brandsViewModel.BrandName = "";
        }
    }

    var list = brands.Select(s => s.BrandName);
    if (list.Contains(actionparameter))
    {
        k = true;
    }
    else
        k = false;

    return Json(k,JsonRequestBehavior.AllowGet);
}

以及完整的功能代码:

var checkBrands = function(value, colname) {  
    var m = $.ajax({
                mtype: "GET",
                url: '@Url.Action("GetBrandForValidation")',
                data: { actionparameter: value },
                async: false,
                cache: false

    });
    if (m == true)
        return [true, ""];
    else
        return [false, "Brand eksistere ikke"];
};

我是个新手,在 javascript 方面非常糟糕,所以不要硬评

【问题讨论】:

  • 我能看到的唯一问题是在 ajax 调用中缺少以下内容.. dataType: "json",
  • @bzim — 这不是 Ajax,它是 Sjax。请参阅async: false,欢迎来到浏览器 UI 锁定的精彩世界。
  • 也没有使用 json

标签: javascript asp.net-mvc ajax jqgrid


【解决方案1】:

ajax 调用是在 JavaScript 中进行的吗?如果是这样,mtype 应该是 type。

【讨论】:

    【解决方案2】:
    var checkBrands = function(value, colname) {  
    $.ajax({
                mtype: "GET",
                url: '@Url.Action("GetBrandForValidation")',
                data: { actionparameter: value },
                async: false,
                cache: false,
                success: function(data){
                     if(data == 'm'){
                        //do something
                     }else{
                        //do something
                     }
    
                }
    });
    
    };
    

    【讨论】:

      【解决方案3】:

      已解决

      var checkBrands = function (value, colname) {
      
            var m = $.ajax({
                mtype: "type",
                url: '@Url.Action("GetBrandForValidation")',
                async: false,
                cache: false,
                data: { actionparameter: value }
      
            }).responseText;
      
      
            if (m == 'true'){
                return [true, ""];
            }
            else return [false, "Brand eksistere ikke"];
      
        };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 2011-10-19
        • 2016-03-31
        • 1970-01-01
        • 2015-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多