相关疑难解决方法(0)

ASP.NET MVC - TempData - 好的或坏的做法

我正在使用AcceptVerbsScott Gu的Preview 5博客文章中详述的方法来处理ASP.NET MVC中的表单条目:

  • 用户通过GET获取一个空表单
  • 用户通过POST将填写的表单发布到同一个Action
  • 操作验证数据,采取适当的操作,并重定向到新视图

所以我没有必要使用TempData.也就是说,我现在必须在此过程中添加一个"确认"步骤,似乎需要使用TempData.

出于某种原因,我厌恶使用TempData- 它是一种可以设计的东西.

这是一个有效的问题,还是我在弥补?

asp.net-mvc tempdata

95
推荐指数
3
解决办法
6万
查看次数

在ASP.NET MVC 2中读取后,TempData保持不变

在ASP.NET MVC 2中,TempData值会持续到会话结束或读取为止.用微软话说 ......

TempData的值一直存在,直到读取或会话超时为止.以这种方式保持TempData可以启用重定向等方案,因为TempData中的值可以在单个请求之外使用.

我以为我理解了这一点,但我在我的应用程序中遇到了异常行为,其中有一个TempData值可用且它不应该可用.通常,我有一个控制器,其中包含一系列操作,其中第一个操作设置一个TempData值,接下来的几个操作读取然后设置该TempData值,最后一个操作读取TempData值.下面的伪代码......

[HttpPost]
public ActionResult Step1()
{
  TempData["bar"] = foo;
  return RedirectToAction("Step2");
}

public ActionResult Step2()
{
  var foo = TempData["bar"];
  TempData["bar"] = foo;
  return View();
}

[HttpPost]
public ActionResult Step2()
{
  var foo = TempData["bar"];
  TempData["bar"] = foo;
  return RedirectToAction("Step3");
}

public ActionResult Step3()
{
  var foo = TempData["bar"];
  TempData["bar"] = foo;
  return View();
}

[HttpPost]
public ActionResult Step3()
{
  var foo = TempData["bar"]; …
Run Code Online (Sandbox Code Playgroud)

tempdata asp.net-mvc-2

3
推荐指数
1
解决办法
1933
查看次数

MVC3控制器操作结果'记住'传入的ID

我的控制器中有两个操作结果.概述和关于.

public ActionResult Overview(int id)
{
    return View(new OverviewModel() { Project = db.People.Find(id) });
}

public ActionResult About(int id)
{
    return View(new AboutModel() { Project = db.People.Find(id) });
}
Run Code Online (Sandbox Code Playgroud)

我想记住传递给Overview的id,并在About上使用它作为默认值.当用户将标签从Overview切换到About时,我不知道如何保持此Id不变.

c# asp.net-mvc-3

0
推荐指数
1
解决办法
762
查看次数

标签 统计

tempdata ×2

asp.net-mvc ×1

asp.net-mvc-2 ×1

asp.net-mvc-3 ×1

c# ×1