Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Jquery Html。从视图到控制器的隐藏值丢失_Jquery_Ajax_Asp.net Mvc_Razor - Fatal编程技术网

Jquery Html。从视图到控制器的隐藏值丢失

Jquery Html。从视图到控制器的隐藏值丢失,jquery,ajax,asp.net-mvc,razor,Jquery,Ajax,Asp.net Mvc,Razor,我需要将来自ajax结果的值添加到表单已经传递给控制器的其他参数中。 除此之外,表单和控制器的工作完全符合预期 这是控制器 [HttpGet] public async Task<ActionResult> Search(int? page, int? selectedCategoryID, int[] geoDataID = null, string searchString = "", string sortBy = "") ajax也没有什么特别之处 $('#selected

我需要将来自ajax结果的值添加到表单已经传递给控制器的其他参数中。 除此之外,表单和控制器的工作完全符合预期

这是控制器

[HttpGet]
public async Task<ActionResult> Search(int? page, int? selectedCategoryID, int[] geoDataID = null, string searchString = "", string sortBy = "")
ajax也没有什么特别之处

$('#selectedRangeID').change(function () {
            var rangeSelected = $(this).val();
            $.ajax({
                url: '@Url.Action("getGeoDataInRangeID", "Manage")',
                datatype: "json",
                type: "GET",
                data: {
                    range: rangeSelected * 5000,
                    latitude: LATITUDE,
                    longitude: LONGITUDE
                },
                success: function (data) {
                    $('#geoDataID').val(data);
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert('Failed to retrieve range geodata.');
                }
            });
        })
它的工作原理与预期的一样:当我提醒结果时,我可以看到数据值,当我查看生成的html输出时,隐藏字段中已经填充了数据。 从


<input class="input-validation-error" id="geoDataID" name="geoDataID" type="hidden" value="3440,3442,3444,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3468,3469,3470,3473,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3577,3579,3592,3593,3610,3616,3617" />


事实上,在提交表单时,除了此参数之外,其他所有参数都会到达控制器,我无法找出缺少的内容。

此错误可能是因为您的函数需要一个int数组,而不是一个逗号分隔的字符串

试用

[HttpGet]
public async Task<ActionResult> Search(int? page, int? selectedCategoryID, string geoDataID = null, string searchString = "", string sortBy = "")
[HttpGet]
公共异步任务搜索(int?page,int?selectedCategoryID,string geoDataID=null,string searchString=“”,string sortBy=“”)
然后将逗号分隔的字符串转换为如下字符串数组:

var strGeoDataId=geoDataID.split(',')

然后int解析它们中的每一个,将其转换为整数数组

var intGeoDataId=Array.ConvertAll(strGeoDataId,int.Parse)


希望这有帮助

此错误可能是因为函数需要一个int数组,而得到的是逗号分隔的字符串

试用

[HttpGet]
public async Task<ActionResult> Search(int? page, int? selectedCategoryID, string geoDataID = null, string searchString = "", string sortBy = "")
[HttpGet]
公共异步任务搜索(int?page,int?selectedCategoryID,string geoDataID=null,string searchString=“”,string sortBy=“”)
然后将逗号分隔的字符串转换为如下字符串数组:

var strGeoDataId=geoDataID.split(',')

然后int解析它们中的每一个,将其转换为整数数组

var intGeoDataId=Array.ConvertAll(strGeoDataId,int.Parse)


希望这有帮助

geoDataId是整数数组吗?尝试改用字符串。geoDataId是整数数组吗?试着用字符串代替。你是对的,伙计!不幸的是,将逗号分隔的字符串转换成整数数组并不是那么简单,但我想这是可以解决的。谢谢什么问题?如果你更新了问题,人们会帮你简化!如果不强制转换每个项,则无法将字符串转换为int[]。这就解决了转换问题:IEnumerable GeoData=StringToIntList(geoDataID);公共静态IEnumerable StringToIntList(string str){if(string.IsNullOrEmpty(str))产生中断;foreach(var s in str.Split(',')){int num;if(int.TryParse(s,out num))产生返回num;}我刚刚为转换为int数组添加了一个位代码。在JS中,它和之前一样简单。(困惑了!:D)你是对的,伙计!不幸的是,将逗号分隔的字符串转换成整数数组并不是那么简单,但我想这是可以解决的。谢谢什么问题?如果你更新了问题,人们会帮你简化!如果不强制转换每个项,则无法将字符串转换为int[]。这就解决了转换问题:IEnumerable GeoData=StringToIntList(geoDataID);公共静态IEnumerable StringToIntList(string str){if(string.IsNullOrEmpty(str))产生中断;foreach(var s in str.Split(',')){int num;if(int.TryParse(s,out num))产生返回num;}我刚刚为转换为int数组添加了一个位代码。在JS中,它和之前一样简单。(困惑了!:D)
<input class="input-validation-error" id="geoDataID" name="geoDataID" type="hidden" value="3440,3442,3444,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3468,3469,3470,3473,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3577,3579,3592,3593,3610,3616,3617" />
[HttpGet]
public async Task<ActionResult> Search(int? page, int? selectedCategoryID, string geoDataID = null, string searchString = "", string sortBy = "")