【问题标题】:Cannot show value after AJAX call (ASP.NET MVC)AJAX 调用 (ASP.NET MVC) 后无法显示值
【发布时间】:2017-12-29 09:32:24
【问题描述】:

我有两个 <p> 字段需要分配文本

这里是html代码:

 <p id="appId" style="visibility: hidden;"></p>
<p id="calculationId" style="visibility: hidden;"></p>

我像这样进行 AJAX 调用

  $('#openCalculationConsumables').click(function() {
    addConsumables();
});

function addConsumables() {
    var patientName = $('#patientsId').val();
    var finding = $('#findingvalue').val();
    var procedure = $('#procedurevalue').val();
    var model = {
        findingValue: finding,
        procedureValue: procedure,
        patientId:patientName
    }
    $.ajax({
        url: '@Url.Action("AddIndividualCalculation", "Calculations")',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(model),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function (data) {
            $('#masters_data').load('@Url.Action("IndividualCalculationConsumables", "Calculations")', function() {
                var list = data;
                $('#calculationId').text(list[0].calcid);
                $('#appId').text(list[0].appid);
            });

        }
    });
}

这是我的后端代码:

  public JsonResult AddIndividualCalculation(string findingValue, string procedureValue,int patientId)
    {
        using (var ctx = new ApplicationDbContext())
        {
            Calculation calc = new Calculation
            {

            };
            ctx.Calculations.Add(calc);
            ctx.SaveChanges();
            int calculationId = calc.Id;
            Appointment app = new Appointment
            {
                Calculation_id = calculationId,
                FindingContent = findingValue,
                ProcedureContent = procedureValue,
                Patient_id = patientId

            };
            ctx.Appointments.Add(app);
            ctx.SaveChanges();
            int appointmentId = app.Id;
            var items = new
            {
                appid = appointmentId,
                calcid = calculationId
            };


            return Json(items,JsonRequestBehavior.AllowGet);
        }
    }

我设置断点并查看,我在items 中有值。在控制台日志中我有这个{appid: 1006, calcid: 1006}

但我无法将其分配给 &lt;p&gt; 并出现此错误。

无法读取未定义的属性“calcid”

我的问题在哪里?

感谢您的帮助。

【问题讨论】:

  • 你用什么 console.log -- list or list[0]?数据应该在 list 而不是 list[0] 因为 mvc 控制器返回一个匿名对象而不是一个集合。
  • 是的,没有[0] 它可以工作。@Sajal

标签: javascript jquery asp.net ajax asp.net-mvc


【解决方案1】:
$('#masters_data').load('@Url.Action("IndividualCalculationConsumables", "Calculations")', function() {
    var list = data;
    $('#calculationId').text(list[0].calcid);
    $('#appId').text(list[0].appid);
});

list[0] 未定义,因为您只返回一个匿名对象而不是对象列表

new {
   appid = appointmentId,
   calcid = calculationId
};

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2019-03-17
    • 2021-12-27
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多