jquery - 尝试将数组传递给 ajax 加载函数,但我的控制器没有正确获取数组
问题描述
那是JQuery:
$(function () {
$('#dish-filter-form').on("submit", function (e) {
e.preventDefault();
var dishName = encodeURIComponent($('#dishName').val());
var selectFoodType = encodeURIComponent($('#selectFoodType').val());
var cities = ["New-York", "Tokyo", "Madrid"];
var strCities= JSON.stringify(cities);
console.log(strCities);
$('.toLoad').load('/Dishes/Search?dishName=' + dishName + "&cities[]=" + strCities+ + "&selectFoodType=" + selectFoodType);
});
});
这是我在 DishesController 中的 Search 方法的签名:
public async Task<IActionResult> Search(string dishName, string[] cities, string selectFoodType)
调试时,我看到 discName 和 selectFoodType 已被很好地读取,但 city 始终是一个空数组,尽管我的控制台向我显示 array:strCities
是我希望的。
解决方案
考虑以下。
$(function () {
$('#dish-filter-form').on("submit", function (e) {
e.preventDefault();
var dishName = encodeURIComponent($('#dishName').val());
var selectFoodType = encodeURIComponent($('#selectFoodType').val());
var cities = ["New-York", "Tokyo", "Madrid"];
var strCities= JSON.stringify(cities);
console.log(strCities);
$('.toLoad').load('/Dishes/Search?dishName=' + dishName + "&cities=" + strCities + "&selectFoodType=" + selectFoodType);
});
});
由于您将数组转换为字符串,因此您应该将字符串传递到您的 GET 请求中。
推荐阅读
- api - 尝试通过 sabre ProfileReadRQ 上的 .net 代码访问配置文件时出错
- php - Laravel 观察者检查用户是否已登录
- mysql - 无法再在 Debian 8 中安装 MySQL 8
- android - 影响 Textview 颜色的父级相对布局前景色
- javascript - ace 编辑器中的 Python 语法检查
- macos - 如何在mac中从命令行启动docker
- javascript - reCAPTCHA V3:空闲后如何处理过期令牌?
- javascript - 防止 select2-dropdown 在关闭时分离以对其进行动画处理
- angular - 运行 npm install 时出现 rxjs 版本错误
- python - 使用多个 except 语句在 try/except 块之外返回错误