我有一个要求,当用户成功发布一些表单数据时,我想要一个模态对话框来显示POST是否成功,以及将视图重置为空状态(如果成功)。
我该怎么做呢?
我让POST逻辑正常工作,但就目前情况而言,没有反馈表明操作是否成功。
答案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" });
}
只是警告ViewData["successmessage"]
on View with Javascript的警告框。
在视图中显示警告框为alert('@ViewData["successmessage"]')
回答2:
[HttpPost]
public ActionResult Index()
{
...............
TempData["successmessage"] = "Saved successfully";
return RedirectToAction("Index");
}
视图(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
}
}
})