jquery $.post 获取从方法返回的字符串

标签 jquery asp.net-mvc ajax

我的页面上有一个简单的表单,其中包含一个调用此 javascript 方法的文本框和按钮

onclick="Create();"

这是运行的函数...

function Create() {
    var txt = document.getElementById("longTxt").value;

    if (txt == "Insert Name") {
        alert("You must provide a name");
        return;
    }

    var data = { Name: txt };
    $.post("/Home/Create", data, null, "json");
}

调用的操作将名称插入数据库并返回一个字符串。

该方法的工作原理是将发布的名称添加到我的数据库中,但我如何使用我的方法返回的字符串在我的文本框中显示返回的字符串。

编辑:

我的方法应该是什么样的

    [AcceptVerbs(HttpVerbs.Post)]
    public JsonResult Create(string name)
    {
        string hash = repo.addName(name);
        return new JsonResult()
        {
            Data = new { data = hash }
        };

    }

当我添加断点并检查它时,它看起来正在工作,它确实添加了名称。使用回调函数是因为我替换了

$("#longUrl").val(json.PropertyReturned);

带有警报(json.PropertyReturned);看看是否发生了任何事情,我得到了文本框,但它显示“未定义”

我对这一切真的很陌生,也许我只是在执行该方法并返回错误。另外,当输入“json”后弹出时,intelisense 不会将“json.PropertyReturned”显示为选项。

最佳答案

提供回调作为 post 调用的第三个参数,该回调将获取从方法返回的值并将其放入文本框中。

$.post("/Home/Create", data, function(json,textStatus) {
    $("#longTxt").val( json.data );
},"json");

如果您还需要处理错误,您可能需要考虑使用 $.ajax()。

编辑:您可能应该使用 Controller 的 Json 方法,而不是使用默认构造函数构造结果。更方便。

return Json( new { data = hash } );

关于jquery $.post 获取从方法返回的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/778808/

相关文章:

javascript - 通过邮件发送 jQuery 变量

c# - 什么时候应该调用 Page.Header.DataBind?

c# - 不能多次枚举查询的结果 (C#)( Entity Framework )(存储过程)

javascript - mCustomScrollbar 不适用于 jquery 附加

javascript - 最佳实践 : How to authenticate/authorize AJAX Calls on the server

php - 使用 jQuery 通过 AJAX 提交表单并显示处理 PHP 页面的返回

jquery - 为什么从 jquery 创建视频 var 不起作用,而从 getElementById 却可以?

Jquery 选择与选择?

javascript - JS 文件中的 MVC 万无一失验证错误

c# - 连接多个字符串,发送到 Controller ?