2015-04-05 2 views
1

пытаясь получить данные по идентификатору метки, вот сценарий;Невозможно получить данные с json jquery

$(document).on('click', '.call', function() { 
     var nId = $(this).data("id") 
     GetText(nId); 
    }); 

    function GetText(id) { 
     var callid = id; 
     alert(callid); 
     $.ajax({ 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json", 
      url: '@Url.Action("TextData","Home")', 
      data: "{'callid':'" + callid+ "' }", 
      success: function (data) { 
       if (data.d != null) { 
        $("#text").html(data.d); 

       } 
       else { 

       } 

      }, 
      error: function() { 
       alert("error"); 
      } 
     }); 

     return false; 

    } 

и вот контроллер;

public JsonResult TextData() 
    { 
     var model = Db.texttable.Select(s => new HomeModel.Content 
      { 
       text=s.text, 
      }); 

     return Json(model, JsonRequestBehavior.AllowGet); 
    } 

я могу получить Id, но я не могу получить текст в этикетку под названием #text в успехе, как я могу исправить, а также делать это с меньшим количеством кода

вот мой список;

@foreach (var item in Model.AyetContent) 
    { 
    <div><i class="fa fa-share"></i>@item.Baslik</div> 
            @Html.Raw(item.Text) 
    <div> 
    @foreach (var itemDesc in Model.Ayetler.Where(o => o.Ayet == item.Id)) 
    { 
    <div><span style="cursor:pointer;float:right;" class="call" data-id="@itemDesc.Id"><i class="fa fa-random"></i> @itemDesc.Baslik <br /></span></div><br /> 
    } 
    </div> 
    } 

вот та часть, которая должна достичь

<div class="post"> 
    <label id="text"></label> 
    </div> 

Я сделал это вместо верхней JQuery

$.ajax({ 
      url: '@Url.Action("TextData", "Home")', 
      type: "GET", 
      success: function (result) { 
       $("#text").append(result); 
       alert(result); 
      } 

теперь возвращает [объект Object] [объект Object]

+0

Вы можете предоставить HTML-код? –

+0

уверен, что я отредактирую – Jackal

+0

'd' - это название? –

ответ

2

Должно быть:

$("#text").append(result.text); 

Кроме того, вам нужно всего лишь одну запись и анонимный объект:

Db.texttable.Select(s => new { text = s.text }).First(); 
+0

это сработало спасибо – Jackal

Смежные вопросы