我需要通知用户点击操作的成功/失败。在视图中,我准备了进入控制器的操作链接,执行数据库操作并返回结果。然后我想通过消息“完成”或“失败”显示警报。一切都应该在不重新加载页面的情况下完成。我试图定义 @Ajax.ActionLink 和 text/javascript 函数,但它根本不起作用......请帮忙。提前致谢。
罗伯特
我需要通知用户点击操作的成功/失败。在视图中,我准备了进入控制器的操作链接,执行数据库操作并返回结果。然后我想通过消息“完成”或“失败”显示警报。一切都应该在不重新加载页面的情况下完成。我试图定义 @Ajax.ActionLink 和 text/javascript 函数,但它根本不起作用......请帮忙。提前致谢。
罗伯特
首先,您应该包含脚本:jquery 和 jquery.unobtrusive-ajax,例如:
<head>
...
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
</head>
内部视图:
<script type="text/javascript">
function myCallback(data) {
if(!data.Success)
{
alert(data.ErrorMessage);
}
else
{
alert("id: " + data.Id);
}
}
</script>
@Ajax.ActionLink("Actionlink", // <-- Text to display
"GetDeneme", // <-- Action Method Name
new { id = "2"},
new AjaxOptions
{
HttpMethod = "POST", // <-- HTTP method
OnSuccess = "myCallback"
})
在控制器中:
public ActionResult GetDeneme(string id)
{
var error = (id == "3");
if (error)
{
return Json(new { Success = false, ErrorMessage = "Error!" });
}
return Json(new { Success = true, Id = id });
}