AJAX mvc web api:用图像创建div

时间:2017-09-13 23:30:57

标签: javascript jquery html ajax model-view-controller

我正在使用restful API,MVC和ajax。我试图从后端获取数据,然后在一些div中显示图像。结果应如下: enter image description here

这是我的后端代码:

  /*route:api/images*/
  [HttpGet]
 public IEnumerable<DTO> GetData(string Id) {
        /*Do something*/
        return Dto;/*the dto has an imgurl property*/           
    }

在我的前端

<div id="mydiv></div>

    <script>
    $(document).ready(function () {
        $.ajax({
            url: "http://localhost:59245/api/api/images",
            type: "Get",
            success: function (data) {                 
                for (var i = 0; i < data.length - 1; i++) {
                    $('<div class="col-lg-4 col-sm-6"><div class="thumbnail">'+
            '<h3 class="centrar">' + data[i].Titulo + '</h3><a href="'+
            data[i].ImagenUrl+'</a><p>'+data[i].Paragraph+'</p></div>'
            ).appendTo("#mydiv");
                }
            },
            error: function (msg) { alert(msg); }
        });
    });
</script>

我的问题是,当我尝试在#mydiv中显示图像时,结果如下: result of the ajax code

我们可以看到,锚标签正在包装段落,但在我的ajax代码中我不是故意这样做的。 我如何解决它? 感谢

2 个答案:

答案 0 :(得分:2)

你没有img标签。试试这个

<script>
$(document).ready(function () {
    $.ajax({
        url: "http://localhost:59245/api/api/images",
        type: "Get",
        success: function (data) {                 
            for (var i = 0; i < data.length - 1; i++) {
                $('<div class="col-lg-4 col-sm-6"><div class="thumbnail">'+
        '<h3 class="centrar">' + data[i].Titulo + '</h3><a href="'+
        data[i].ImagenUrl+'"><img src="'+data[i].ImagenUrl+'"/></a><p>'+data[i].Paragraph+'</p></div>'
        ).appendTo("#mydiv");
            }
        },
        error: function (msg) { alert(msg); }
    });
});

答案 1 :(得分:1)

我在这里可以看到拼写错误 - <a>标记未关闭:

$('<div class="col-lg-4 col-sm-6"><div class="thumbnail">'+
        '<h3 class="centrar">' + data[i].Titulo + '</h3><a href="'+
        data[i].ImagenUrl+'"><img src="'+
        data[i].ImagenUrl+'"></a></div>'
        ).appendTo("#mydiv");

这将输出图像并使其成为链接。我猜你必须将其标记以获得你发布的结果。