在视图Edit.cshtml
中编辑信息后,我设置了一个会话变量Session["ToastMessage"] = "Sucessfully";
,使其在Edit.cshtml
中显示,然后再次加载。但是我在View中看到了Session["ToastMessage"] = null
。
// GET: About/Edit/
public ActionResult Edit()
{
AboutInformation about = LoadDataFromConfigFile();
return View(about);
}
// POST: About/Edit/
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "NameApp,ContactInformation,Email,Fax,Phone,ReleaseDay,LogoPathOfProduction,IsShow,LatestVersion,ReleaseNotes")] AboutInformation about,List<string> imagesToDelete, List<HttpPostedFileBase> images, bool? isShowInfo)
{
if (ModelState.IsValid)
{
//update....
}
Session["ToastMessage"] = "Sucessfully";
return RedirectToAction("Edit");
}
试图调试,当它刚刚传递给Get方法时显示Session["ToastMessage"] = null
:
// GET: About/Edit/
public ActionResult Edit()
{
}
Session很明显,在我的应用程序中已经使用了很多Session,并且运行良好。 ASP是否会在任何随机时间清除会话? 需要帮助!
答案 0 :(得分:1)
对于您的情况,可以使用TempData
代替Session
。
TempData["ToastMessage"] = "Sucessfully";
TempData可用于存储可在后续请求中使用的临时数据。
public ActionResult Edit()
{
var result = TempData["ToastMessage"];
// check result here
AboutInformation about = LoadDataFromConfigFile();
return View(about);
}
答案 1 :(得分:0)
在重定向到一个ActionMethod到另一个Action时,可以使用TempData。
var Status=TempData["ToastMessage"];
答案 2 :(得分:0)
您可以使用@ hien-nguyen答案直接返回查看并显示烤面包消息。但是,根据您的情况,您将重定向到其他操作方法。 因此,您可以使用Temp数据的Keep方法,如下所示:
// POST: About/Edit/
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "NameApp,ContactInformation,Email,Fax,Phone,ReleaseDay,LogoPathOfProduction,IsShow,LatestVersion,ReleaseNotes")] AboutInformation about,List<string> imagesToDelete, List<HttpPostedFileBase> images, bool? isShowInfo)
{
if (ModelState.IsValid)
{
//update....
}
TempData["ToastMessage"] = "Sucessfully";
var message = TempData["ToastMessage"];
TempData.Keep("ToastMessage");
return RedirectToAction("Edit");
}
在“获取方法”中:
public ActionResult Edit()
{
AboutInformation about = LoadDataFromConfigFile();
var message = TempData["ToastMessage"];
return View(about);
}