【发布时间】:2018-06-18 18:52:31
【问题描述】:
我正在使用 ASP.Net Core,我正在尝试将所有内容本地化。我没有从控制器或视图中本地化字符串的问题,但我确实有来自 javascript 的 ajax 调用,该调用当前具有硬编码的英语成功/错误消息。我最初的想法是我可以将本地化的成功/错误消息从控制器传递回 ajax 调用。我认为使用 ajax 成功函数会很容易,但我不确定如何将错误消息传递给错误/失败函数。
这是我的 ajax 调用:
$.ajax({
type: "POST",
url: '@Url.Action("SaveGridState", "Account", new { gridID = 3 })',
data: {
options: JSON.stringify(gridState)
},
async: true,
success: function(data) {
var staticNotification = $("#staticNotification").data("kendoNotification");
staticNotification.show({
message: "Grid State Saved"
}, "success");
var container = $(staticNotification.options.appendTo);
container.scrollTop(container[0].scrollHeight);
},
fail: function() {
var staticNotification = $("#staticNotification").data("kendoNotification");
staticNotification.show({
message: "Grid State Save Failed"
}, "error");
var container = $(staticNotification.options.appendTo);
container.scrollTop(container[0].scrollHeight);
}
});
这是我的控制器的功能:
public bool SaveGridState(string options, int gridID)
{
try
{
UserStore ustore = new UserStore(_settings);
HttpContext.Session.LoadAsync();
uint user_id = (uint)HttpContext.Session.GetInt32("UserID");
options = options.Replace("'", @"\'");
return ustore.SaveGridState(user_id, gridID, options);
}
catch(Exception ex)
{
return false;
}
}
有没有办法从 SaveGridState 函数定义我的成功/错误消息并将其传递给 ajax 函数?
【问题讨论】:
-
在成功和错误的情况下调用
SaveGridState会返回什么? -
你的控制器应该返回
IActionResult,然后你可以返回Ok()或BadRequest()。 -
@AndreasHassing 现在如果状态被保存则返回 true,否则返回 false
-
@MarkG 所说的:
return BadRequest(new { Result = false, Error=myError });类似的东西。
标签: c# ajax asp.net-core