我的页面上有一个简单的表单,其中包含一个调用此 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/