2016-08-24 78 views
0

大家好,我需要改变从JsonResult文本标签上我的控制器......我有两个问题...用控制器的ajax更改标签?

  • 1)我不能对我的看法打印,我从我的 发送文本控制器...

  • 2)我想从我的控制器发送3个标签,当我从我的下拉列表中选择一个
    选项。

    请帮助,如果有人知道如何做到这一点... :)

在我查看

<div class="col-md-6 col-sm-6 col-xs-12"> 
    <label id="lblCargo"></label> 
</div> 

@section scripts{ 
    <script> 
     $(document).ready(function() { 

     $("#ddlEmpleado").change(function() { 
      var selectedItemValue = $(this).find(":selected").val() 

      $.ajax({ 
       cache: false, 
       type: "GET", 
       url: '@Url.Action("getLabels", "AsignarBien")', 
       data: { 
        "id": selectedItemValue, 
       }, 
       contentType: 'application/json; charset=utf-8', 
       Success: function() { 
        $("#lblCargo").text(data); 
       }, 
       error: function() { 
        alert("error"); 
       } 
       } 
      ); 
     }); 

    }); 
</script> 
} 

在我的控制,我得到这个

public JsonResult getLabels(Guid id) 
{ 
    var result = (from item in vempleados.GetAll().ToList() 
     where item.IdEmpleado == id 
     select item.Cargo).SingleOrDefault(); 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 
+2

你需要在你的成功函数中有一个数据参数。另外,item.Cargo在你的查询中是一个对象还是一个字符串? – Jecoms

+0

是的,你必须在你的成功中加入类似的东西。成功:function(data){(“#lblCargo”)。text(data); }, –

+2

如果您要返回JSON对象,则必须对其进行迭代,或者通过键值对其进行访问。 –

回答

0

三小巧它会工作:

  1. success必须小写。
  2. data参数添加到success函数。
  3. selectedItemValue

基本上不应该有逗号(,)使您$.ajax电话这样的:

$.ajax({ 
    cache: false, 
    type: "GET", 
    url: '@Url.Action("getLabels", "AsignarBien")', 
    data: { "id": selectedItemValue}, 
    success: function (data) { 
     $("#lblCargo").text(data); 
    }, 
    error: function() { 
     alert("error"); 
    } 
}); 

注意:您不需要指定的contentType的GET请求,所以你可以完全解决这个问题。