Я видел некоторые статьи (даже MSDN), предлагающие TempData для передачи данных между ActionMethods. Но я видел, как другие здесь говорят, что следует избегать TempData. Каков наилучший способ приблизиться к этому?
Вот некоторый код, чтобы показать мою ситуацию. Примечание: я на 100% уверен, что делаю это неправильно. Вот почему я здесь. :) Кроме того, до недавнего времени я занимался веб-формами.
Примечание 2: Это связано, но не одно и то же. < /а>
Вид:
<div>
@using (Html.BeginForm("Previous", "Home", new {month = @month}, FormMethod.Post))
{
<input id="previous" type="submit" value="Previous" />
}
// This fails but that's another situation
@using (Html.BeginForm("Next", "Home", new {month = @month, year = @year}, FormMethod.Post))
{
<input id="next" type="submit" value="Next" />
}
</div>
Методы контроллера:
[HttpPost]
public ActionResult Previous(HTMLMVCCalendar.Models.MonthModel prevMonth)
{
Calendar monthEventsCal = new Calendar();
int month = prevMonth.Month;
int year = prevMonth.Year;
var newMonth = monthEventsCal.previousMonth(year, month);
month = newMonth.Item2;
year = newMonth.Item1;
return RedirectToAction("Index", "Home", new { month = month });
}
[HttpPost]
public ActionResult Next(HTMLMVCCalendar.Models.MonthModel nextMonth)
{
Calendar monthEventsCal = new Calendar();
int month = nextMonth.Month;
int year = nextMonth.Year;
var newMonth = monthEventsCal.nextMonth(year, month);
month = newMonth.Item2;
year = newMonth.Item1;
return RedirectToAction("Index", "Home", new { year = year, month = month });
}
TempData
, который ненадежен как хороший механизм передачи данных. - person Tejs   schedule 17.04.2012