用ajax从控制器更改标签

change label with ajax from controller?

本文关键字:标签 控制器 ajax      更新时间:2023-09-26

大家好,我需要改变文本标签从JsonResult在我的控制器…我有两个问题……

  • 1)我不能在我的视图上打印我从我的控制器…

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

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

On my View

<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);
}

三个小改动就可以了:

  1. success必须为小写
  2. success功能中增加data参数
  3. selectedItemValue
  4. 后面不能有逗号(,)

基本上让你的$.ajax调用像这样:

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

注意:你不需要为GET请求指定contentType,所以你可以把它完全去掉