1

我有一个返回以下 JSOn 的 Web API:-

{'url': 'http://192.168.10.50/WCF/00vf/img?imgid=1', 'desc': 'firstdoc'},{'url': 'http://192.168.10.50/WCF/vf/img?imgid=2', 'desc': 'sedonddoc'},{'url': 'http://192.168.10.50/WCF/vf/img?imgid=3', 'desc': 'thirddoc'}

所以我需要<a>根据返回的 JSON 构建链接,我尝试编写以下 jquery 但没有成功:-

<script type="text/javascript">
$(function() {
    $.getJSON("http://localhost:1431/home/statisjson",
  {

    datetype: "json"
  },
  function(data) {
      $.each(data, function (key, val) {
      $("<a/>").attr("href", val.url).appendTo("#links");

    });
  });
})
</script>
<div id="links"></div>

我仍然需要将“desc”JSON 对象添加为链接文本,但我不知道该怎么做?

BR

::UPDATE:: 我已将我的脚本更新为以下内容,但它不起作用:-

@section scripts {
 <script type="text/javascript">
     $(document).ready(function () {



         $.ajax({
             type: "GET",
             url: 'http://localhost:1431/Home/statisjson',
             dataType: "JSON",

             success: function (result) {

                 $.each(result, function (key, val) {


                     $("<a>", { href: val.url, text: val.desc }).appendTo("#links");


                 });
             }
         });


     });

 </script>

返回 JSON 的 asp.net 方法如下所示:-

public ActionResult statisjson(int start = 0, int rows = 50)
        {
 var j = "[{'url': 'http://192.168.10.50/img?imgid=1', 'desc': 'firstdoc'},{'url': 'http://192.168.10.50/img?imgid=2', 'desc': 'sedonddoc'},{'url': 'http://192.168.10.50/img?imgid=3', 'desc': 'thirddoc'}]"; 
return Content(j, "application/json");

        }
4

3 回答 3

5

当传递 HTML 作为第一个参数时,你可以传递一个包含你的属性的对象字面量作为第二个参数:

$("<a>", { href: val.url, text: val.desc }).appendTo("#links");
于 2012-11-13T13:16:30.113 回答
0

尝试使用这个:

$("<a>" + val.desc + "</a>").attr("href", val.url).appendTo("#links");
于 2012-11-13T13:15:53.217 回答
0

这不是一个有效的 JSON。您需要添加[].

[{'url': 'http://192.168.10.50/WCF/00vf/img?imgid=1', 'desc': 'firstdoc'},{'url': 'http://192.168.10.50/WCF/vf/img?imgid=2', 'desc': 'sedonddoc'},{'url': 'http://192.168.10.50/WCF/vf/img?imgid=3', 'desc': 'thirddoc'}]

你应该试试这个来创建你的链接:

$("<a/>").attr("href", val.url).text(val.desc).appendTo("#links");
于 2012-11-13T13:17:12.457 回答