【问题标题】:Get data from a controller, return as json and preview in cshtml从控制器获取数据,以 json 格式返回并在 cshtml 中预览
【发布时间】:2013-06-24 12:17:35
【问题描述】:

我有一个控制器,我得到了结果 exampleController.cs:

public expChart{
...
   public ActionResult ByContainer(int id)
    {
        var elementIds = _systemSettings.Z3FromZBIds; // CritialWorkPermitIds; 

        var kpiElements = CacheService.AllVisibleElements
                                      .Where(x => elementIds.Contains(x.Id)).ToList();

        var container = _kpiContainerService.Find(id);

        var result = _kpiTrendService.MonthByContainer(kpiElements, container);
        return AsJson(result);
    } 
} 

我在example.cshtml中调用它:

<div class="panel" style="display: none;" id="bottom-area-trend-charts" ng-ontroller="exampleController">
    <div >
        TEST
        {{element.Name}}
    </div>

</div>

我认为我的召唤有问题。如何在我的控制器中调用结果?

提前致谢

【问题讨论】:

  • 为什么返回Json中的内容?您想在 AJAX 中检索元素吗?
  • 是的,我需要在 AJAX 中检索它
  • 如果要查看结果,可以在网络浏览器中查看:localhost/example/ByContainer/{yourid}
  • 我可以看到结果,它是正确的。我想在我的 cshtml 页面中将其显示为列表。

标签: c# json razor controller


【解决方案1】:

使用这样的东西:

<script type="text/javascript">
    $(function () {
        $.ajax({
            url: "/YourController/ByContainer",
            type: "GET",
            dataType: 'html',
            data: { id: 10 }, // the value id for call your controller
            success: function (data) {
                // make sure your result variable is enumerable.
                $(data).each(function (index, element) {
                    $("#bottom-area-trend-charts div").append("<p>" + element.Name + "</p>");
                });
            },
            error: function (xqr, errorMessage) {
                alert(errorMessage);
            }
        });
    });
</script>

并将您的操作更改为:

public JsonResult ByContainer(int id)
{
    var elementIds = _systemSettings.Z3FromZBIds; // CritialWorkPermitIds; 

    var kpiElements = CacheService.AllVisibleElements
                                    .Where(x => elementIds.Contains(x.Id)).ToList();

    var container = _kpiContainerService.Find(id);

    var result = _kpiTrendService.MonthByContainer(kpiElements, container);

    return Json(result, JsonRequestBehavior.AllowGet);
} 

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 2016-12-05
    • 2020-05-27
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多