【问题标题】:displaying json strings from controller in view over ajax in asp.net core 2 MVC在asp.net core 2 MVC中通过ajax显示来自控制器的json字符串
【发布时间】:2019-06-21 05:05:19
【问题描述】:

当我按下调用控制器动作并将参数传递给控制器​​的 BTN 时,我正在模态中调用 ajax 函数。我现在想将字符串作为 Json 返回到视图并以相同的模态显示它们。奇怪的是,它在我的笔记本电脑上工作,依赖“System.Web.MVC”,但似乎在“Microsoft.AspNetCore.Mvc”中不起作用。返回 Json 时,我用这些 json 字符串填充模式中的输入,但在具有 asp.net 核心的 PC 上,输入只是在笔记本电脑上它们被填充的地方保持空白。

控制器返回类型

       return Json(new { Nachname, Vorname, UserName });

阿贾克斯

$(document).ready(function () {
    $("#btnGet").click(function () {
        $.ajax(
            {
                type: "POST",
        url: "@Url.Action("getName", "Home")",
                data: {
                    UserName: $("#txtName").val()
                },
                success: function (result) {
                    $('#infos').show();
                    $('#txtName').addClass("form-control is-valid");
                    $('#InputFirstName').val(result.Vorname);
                    $('#InputLastName').val(result.Nachname);
                    $('#InputFirstName').show();
                    $('#InputLastName').show();
                    $('#labelInfo').show();
                },
                failure: function (response) {
                    alert(response.responseText);
                },
                error: function (response) {
                    alert(response.responseText);
                }
            });

    });
});

`

【问题讨论】:

  • 您是否在浏览器控制台中查看过是否有任何错误?另外,如果您执行console.log(result);,控制台中会显示什么?
  • 对于 Core MVC,你应该试试这个:return new JsonResult(new { Nachname, Vorname, UserName });,因为ControllerBase 没有Json 方法。
  • @TetsuyaYamamoto 我试过了,但似乎仍然有同样的问题。我需要在 Ajax 中进行一些更改吗?
  • @Izzy 是的,我试过了。我在 console.log 中得到了正确的字符串等。只是没有显示在模态中
  • @MischaMorf 您能否更新问题并包含控制台中显示的字符串。

标签: c# json model-view-controller


【解决方案1】:

正如我在 cmets 中提到的,您返回的字符串是:

{nachname: "Morf", vorname: "Mischa", userName: "mrfmi"} 

你将它用作:

$('#InputFirstName').val(result.Vorname);

这里的result.Vorname 将是未定义的,因此您需要按如下方式进行更改:

$('#InputFirstName').val(result.vorname);
...

【讨论】:

    【解决方案2】:

    这可能是您的 AJAX 调用中缺少参数吗?

    尝试添加:

    dataType: "json"
    

    到你的参数。

    【讨论】:

    • 这是我在 console.log(result) {nachname: "Morf", vorname: "Mischa", userName: "mrfmi"} 时得到的字符串}
    • 没用。在 ajax 中没有,但添加没有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2012-05-10
    • 2010-10-27
    相关资源
    最近更新 更多