Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Can';t从Ajax获取HTML或将响应追加到DIV-JQuery_Jquery_Html_Ajax - Fatal编程技术网

Can';t从Ajax获取HTML或将响应追加到DIV-JQuery

Can';t从Ajax获取HTML或将响应追加到DIV-JQuery,jquery,html,ajax,Jquery,Html,Ajax,我试图从控制器获得一个简单的响应,并将其附加到div中,以便在前端看到输出。以下是我的JQuery: $('.js-mapsearch').keyup(function (e) { var characters = $(this); var $output = $('.js-output'); console.log(characters.val() + ' was pressed'); $.

我试图从控制器获得一个简单的响应,并将其附加到
div
中,以便在前端看到输出。以下是我的JQuery:

 $('.js-mapsearch').keyup(function (e) {

            var characters = $(this);
            var $output = $('.js-output');

            console.log(characters.val() + ' was pressed');

            $.ajax({
                type: "POST",
                url: '/umbraco/surface/MapSearchSurface/GetPlaces?Characters=' + characters,
                datatype: 'html',
                contentType: 'application/text',
                success: function (data) {

                    if (data) {
                        $output.append($(data).html());
                        console.log($(data).html());
                        console.log(data);
                    }

                },
                error: function (ex) {
                    console.log(ex);
                }
            });

            e.preventDefault();



});
以下是控制台日志:

console.log($(data).html());  // [object Object]
console.log(data);            // <div class="js-places-container">[object Object]</div>
这是我的
控制器
代码:

@model Prodo.umbraco.Web.Models.GetPlacesModel

<div class="js-places-container">@Model.Places</div>
public ActionResult GetPlaces(string Characters)
        {
            var Model = new GetPlacesModel();

            Model.Places = Characters;

            return PartialView("~/Views/Partials/_MapSearchResults.cshtml", Model);
        }
public class GetPlacesModel
    {
        public string Places { get; set; }
    }
型号
代码:

@model Prodo.umbraco.Web.Models.GetPlacesModel

<div class="js-places-container">@Model.Places</div>
public ActionResult GetPlaces(string Characters)
        {
            var Model = new GetPlacesModel();

            Model.Places = Characters;

            return PartialView("~/Views/Partials/_MapSearchResults.cshtml", Model);
        }
public class GetPlacesModel
    {
        public string Places { get; set; }
    }

理论上,我现在应该能够通过
$('.js output')
div
在前端看到输入的字符。有人能帮忙吗。

好吧,你的代码正按照你告诉它的方式工作,你只是在javascript中输入字符串
[object object]

这会将其设置为对象

var characters = $(this);
当你使用它的时候

url: '/umbraco/surface/MapSearchSurface/GetPlaces?Characters=' + characters
它调用
字符
对象的默认
.toString()
方法

您实际要做的是如下设置:

var characters = $(this).val();

或者类似的东西来获取您想要传递的字符串值。

好吧,您的代码正按照您告诉它的方式工作,您只是在javascript中传递字符串
[object object]

这会将其设置为对象

var characters = $(this);
当你使用它的时候

url: '/umbraco/surface/MapSearchSurface/GetPlaces?Characters=' + characters
它调用
字符
对象的默认
.toString()
方法

您实际要做的是如下设置:

var characters = $(this).val();
或类似的内容,以获取要传递的字符串值。

您可以尝试以下方法:

$.get('your/url/template.html').done(function (data) {
       $('#your_div').append(data);
});
您可以尝试以下方法:

$.get('your/url/template.html').done(function (data) {
       $('#your_div').append(data);
});

太棒了,现在说得通了。然而,我现在正在将每个字符输入日志,但遗憾的是,我似乎仍然无法获得追加的元素
$('.js output')
(''+$(data.html()+'

')显示在前端。这听起来像是一个单独的问题,我们还需要查看您的html以了解为什么可能没有显示。谢谢Matti,html代码中的问题是类名不正确,所以一切都很好。我现在把这个标记为一个答案。太棒了,现在说得通了。然而,我现在正在将每个字符输入日志,但遗憾的是,我似乎仍然无法获得追加的元素
$('.js output')
(''+$(data.html()+'

')显示在前端。这听起来像是一个单独的问题,我们还需要查看您的html以了解为什么可能没有显示。谢谢Matti,html代码中的问题是类名不正确,所以一切都很好。我现在把这个标记为答案。