【发布时间】:2016-01-19 19:16:35
【问题描述】:
单击按钮时,我正在尝试将用户在文本框中输入的产品名称值发送到服务器进行修改,然后使用 AJAX 返回页面。我正在进入控制器中的 ChangeName 方法,但没有进入我的成功函数来提醒新名称。
JS:
$("#changeNameButton").click(function () {
var productName = $("#Name").val();
$.ajax({
url: '/Products/ChangeName/',
type: 'POST',
dataType: 'JSON',
data: {name: productName},
success: successFunc
});
});
function successFunc(data) {
alert(data);
}
控制器:
public string ChangeName(string name)
{
string changedName = ChangeNameHelper(name);
return changedName;
}
如果有人可以就在 MVC5/6 中对控制器进行异步调用的正确方法提出建议,那就太好了。
我的主要问题是我永远不会在响应时进入successFunc()。
【问题讨论】:
-
您可能想要
return name;而不是return ChangeName(name),因为您正在进行反复调用。 -
看起来
ChangeName函数只是调用自己,这会导致无限循环。它永远不会成功,因为服务器永远不会向客户端返回响应。 -
@remdevtec 我现在将新更改的名称设置为一个变量,然后尝试返回它,但警报仍然没有发生。你能只将一个字符串返回给 AJAX 吗?还是我必须返回 JsonResult 或 ActionResult?
-
@BlakeRivell 看起来它正在做同样的事情。通过调用
ChangeName(name)作为第一行,您将继续无限调用ChangeName函数。你要么需要调用另一个函数(做一些工作),要么只需要return name; -
我很抱歉!在我的实际代码中,ChangeName 是一个具有不同名称的辅助函数。现在看看我更新的代码。
标签: javascript jquery asp.net ajax asp.net-mvc