Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 MVC.NET将带有Jquery Autocomplete的ViewBag字符串[]数组传递给服务器ActionResult_Javascript_Jquery_Arrays_Asp.net Mvc 4_Jquery Autocomplete - Fatal编程技术网

Javascript MVC.NET将带有Jquery Autocomplete的ViewBag字符串[]数组传递给服务器ActionResult

Javascript MVC.NET将带有Jquery Autocomplete的ViewBag字符串[]数组传递给服务器ActionResult,javascript,jquery,arrays,asp.net-mvc-4,jquery-autocomplete,Javascript,Jquery,Arrays,Asp.net Mvc 4,Jquery Autocomplete,我试图通过jQuery的自动完成功能将保存在ViewBag中的字符串数组传递回服务器ActionResult。我这样做是为了尝试并持久化数据,这样我就不必每次调用服务器时都不断检索价格(价格是通过抓取url检索的)。以下是我到目前为止的情况: 文本框: @Html.TextBoxFor(r => r.NewPostModel.NewManualPrice, null, new { @class = "form-control", @type="number", id = "input-p

我试图通过jQuery的自动完成功能将保存在ViewBag中的字符串数组传递回服务器ActionResult。我这样做是为了尝试并持久化数据,这样我就不必每次调用服务器时都不断检索价格(价格是通过抓取url检索的)。以下是我到目前为止的情况:

文本框:

 @Html.TextBoxFor(r => r.NewPostModel.NewManualPrice, null, new { @class = "form-control", @type="number", id = "input-post-price", placeholder = "Enter the price" })
Javascript:

var priceTags = new Array();
    var array = @Html.Raw(Json.Encode(@ViewBag.UrlPrices));
    for(var i =0; i<array.length;i++){ priceTags[i] = array[i]; }  
    $(document).ready(function () {
        $("#input-post-price").autocomplete({
            source: function(request, response) {
                $.getJSON('@Url.Action("PriceSearch", "ModalItem", new { Area = "" } )', { prices: priceTags) }, response);
            }
        });
    })
如果我将源代码替换为:

'@Url.Action("PriceSearch", "ModalItem", new { Area = "" } )'
并从actionresult中删除“string prices”参数。
但我也希望能够将阵列传回。有人知道如何做到这一点吗?

如果您有一个小的打字错误,您需要更改:

{ prices: priceTags) }
为此:

{ prices: priceTags }
卸下额外的(1)支架

下面是一个JSFIDLE,其中有一个传递数据的示例:


当您单步执行脚本时,您的数组是否正确转换?您正试图在视图上创建一个数组以发送到控制器,但您的控制器只有一个stringHi Matt输入,是的,我尝试了string和string[],但没有一个被触发。下面是我的javascript如何在Chrome的devtools中呈现的:var priceTags=new Array();变量数组=[“$119.90”,“$274.75”];for(var i=0;iThanks!我让它工作了。我最终传递了一个字符串并将该字符串拆分回服务器端的数组。没问题,很好。:)
{ prices: priceTags }