You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AJAX请求参数无法传递至MVC控制器,参数值为null求排查

问题分析与解决方案

你的from参数始终为null,主要是两个核心问题导致的,咱们一步步拆解:

1. GET请求的传参方式错误

你用JSON.stringify(req)把请求数据转成了JSON字符串传给data,但GET请求的参数是通过URL查询字符串传递的——jQuery会自动把data里的对象拼接成?key=value的格式,但你传的是一个完整的JSON字符串,后端的[FromUri]属性无法从这个字符串里解析出from字段,自然就拿到null了。

修正后的AJAX代码:

function ImportBundle() { 
  var req = { "from": "bundle" }; 
  $.ajax({ 
    async: true, 
    type: "GET", 
    url: "Client/ZWS/{lang}/ImportBundles", 
    // 移除contentType,GET请求不需要这个请求头(它是给POST请求体用的)
    data: req, // 直接传对象,无需JSON.stringify
    dataType: 'html', 
    success: function (data) { 
      $(".viewdiv").html(data); 
    }, 
    error: function () { // 注意拼写错误:是error不是failuere
      alert("fail"); 
    } 
  }); 
}

2. 控制器参数绑定的可选优化

其实对于GET请求,[FromUri]属性是可以省略的——ASP.NET MVC默认会自动从URL查询字符串里绑定参数,所以你的控制器代码可以简化成:

[System.Web.Http.HttpGet] 
public ActionResult ImportBundles(string from) { 
  return PartialView("~/Views/_ViewImportBundles.cshtml"); 
}

另外别忘了修正AJAX里的错误回调拼写:把failuere改成error,否则请求失败时不会触发你写的alert逻辑哦。

内容的提问来源于stack exchange,提问作者Srijani Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:30:59