【发布时间】:2014-10-01 16:32:39
【问题描述】:
我有一个要求,当用户成功发布一些表单数据时,我想要一个模式对话框来显示 POST 是否成功,以及将视图重置为空状态(如果成功)。
我该怎么做?
我的 POST 逻辑工作正常,但就目前而言,没有反馈表明操作是否成功。
【问题讨论】:
-
如果需要更多帮助,请评论...
标签: asp.net-mvc
我有一个要求,当用户成功发布一些表单数据时,我想要一个模式对话框来显示 POST 是否成功,以及将视图重置为空状态(如果成功)。
我该怎么做?
我的 POST 逻辑工作正常,但就目前而言,没有反馈表明操作是否成功。
【问题讨论】:
标签: asp.net-mvc
答案 1:
public ActionResult Index(string message)
{
if(!string.IsNullOrEmpty(message)){
ViewData["successmessage"]=message; //Or you can use Viewbag
}
return View();
}
[HttpPost]
public ActionResult Index()
{
...............
return RedirectToAction("Index",new{ message="Saved successfully" });
}
只需在使用 Javascript 警告框查看时提醒 ViewData["successmessage"]。
在查看时只显示警告框为alert('@ViewData["successmessage"]')
答案 2:
[HttpPost]
public ActionResult Index()
{
...............
TempData["successmessage"] = "Saved successfully";
return RedirectToAction("Index");
}
查看(索引.cshtml):-
@{
var message = TempData["successmessage"] ?? string.Empty;
}
<script type="text/javascript">
var message = '@message';
if(message)
alert(message);
</script>
【讨论】:
首先,你必须在前端添加一个监听器,主要是 jquery.ajaxSetup 函数。
然后你需要让前听者知道这是显示对话框的成功请求,添加特殊代码或类似的东西。
C#代码:
return Json(new{Code = 200, Message = "some text"}, JsonRequestBehavior.AllowGet);
Javascript 代码:
$.ajaxSetup({
success: function(xhr){
var response = JSON.parse(xhr.responseText);
if(response & response.Code == 200 && response.Message) {
// pop up dialog with message here
}
}
})
【讨论】: