Imp*_*rks 7 asp.net asp.net-mvc redirect
我有一个ASP.NET MVC在线商店类应用程序,有两个视图:
用户成功提交表单后,应将其重定向回项目页面,并在顶部显示一次性消息:"您的评论已成功提交".
控制器代码(简化)如下所示:
[HttpGet]
public ActionResult ViewItem([Bind] long id)
{
var item = _context.Items.First(x => x.Id == id);
return View(item);
}
[HttpGet]
public ActionResult AddReview()
{
return View();
}
[HttpPost]
public ActionResult AddReview([Bind] long id, [Bind] string text)
{
_context.Reviews.Add(new Review { Id = id, Text = text });
_context.SaveChanges();
return RedirectToAction("ViewItem");
}
Run Code Online (Sandbox Code Playgroud)
有几个要求要满足:
我想将消息存储在用户会话中并在显示后将其丢弃,但是可能有更好的解决方案吗?
Jan*_*thy 17
通过使用tempdata,您可以将消息或数据(字符串/对象)从一个页面传递到另一个页面,并且它仅在一个动作之间有效.
关于tempdata的一些要点:
在你的控制器中:
[HttpPost]
public ActionResult AddReview([Bind] long id, [Bind] string text)
{
_context.Reviews.Add(new Review { Id = id, Text = text });
_context.SaveChanges();
TempData["message"] = "someMessage";
return RedirectToAction("ViewItem");
}
Run Code Online (Sandbox Code Playgroud)
在您的视图页面中:
@TempData["message"]; //TempData["message"].ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13659 次 |
| 最近记录: |