从控制器动作返回的Json中获取数据

问题描述 投票:0回答:1

我有一个模态,我试图通过从控制器动作通过JSON obj发送模态来填充。似乎可以很好地返回模型,但是我很难从模型中提取数据来填充HTML。下面是我的代码。

如果有人可以帮助纠正JS中的语法,将不胜感激。

控制器动作:

      [HttpGet]
    public ActionResult JobPollerParameters(int jobRequestId)
    {
        var model = new Dashboard.Web.Models.Tools.JobPollerMonitorResponseModel();

        try
        {
            using (var client = new DashboardAPIClient())
            {
                var response = client.GetJobRequestParemeters(jobRequestId);
                model.JobRequestParameters = response.JobRequestParameters;


            }
        }
        catch (Exception ex)
        {
            ExceptionHandling.LogException(ex);
            throw;
        }

        return Json( model.JobRequestParameters, JsonRequestBehavior.AllowGet);
    }

需要在其上显示JSON数据的模式:

<div class="modal fade" id="paramsModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-header modal-header-primary">
            <a class="btn btn-xs btn-primary pull-right" data-dismiss="modal" aria-label="Close"><span class="glyphicon glyphicon-remove"></span></a>
            <h4 class="modal-title" id="modalTitleText"></h4>
        </div>
        <div class="modal-body">
            <div class="row">
                <div class="col-md-3 font-weight-bold">Name:</div>
                <div class="col-md-9" id="modalName"></div>
            </div>
            <div class="row">
                <div class="col-md-3 font-weight-bold">Message:</div>
                <div class="col-md-9 text-break" id="modalMessage"></div>
            </div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
        </div>
    </div>
</div>

JS功能:

    $('#paramModalBtn').click(function () {

    var col = $('#requestId');
    var jobRequestId = col.data("id");

    //console.log(jobRequestId);

     $.ajax({
        url: '@Url.Action("JobPollerParameters", "Tools")',
         data: { "jobRequestId": jobRequestId},
        success: function(results){

            $modal = $('#paramsModal');
            $modal.modal("show");

            var name = JSON.parse(results.name);
            var message = JSON.parse(results.message)

            $('#modalName').text(name);
            $('#modalMessage').text(message);
        }
    });
});

同样在某些情况下,我想证明我返回的模型应该是“ JobRequestParameters”的列表,其中我需要Model.JobRequestParameters.Name和JobRequestParameters.value。我在想,也许我不需要列表?

json asp.net-mvc razor asp.net-ajax
1个回答
0
投票

控制器返回格式化为JSON的字符串,然后可以将其解析为JavaScript对象并如此使用。

您需要解析一次数据,然后您可以使用一个对象。

var obj = JSON.parse(results);
$('#modalName').text(obj.name);
$('#modalMessage').text(obj.message);
© www.soinside.com 2019 - 2024. All rights reserved.