Как проверить значение TempData в моем представлении после сообщения формы?
Я заполняю свою TempData из FormCollection
, а затем я пытаюсь проверить значение my TempData
в моем представлении с помощью MVC 4, но мой оператор if
не работает, как я ожидаю. Вот мой код.
Контроллер:
[HttpPost]
public ActionResult TestForm(FormCollection data)
{
TempData["username"] = data["var"].ToString(); //data["var"] == "abcd"
return RedirectToAction("Index");
}
Вид:
@if (TempData["var"] == "abcd")
{
<span>Check</span> //Never displayed
}
else
{
@TempData["var"]; // Display "abcd"
}
Это выглядит очень просто, и я не понимаю, почему я не могу отобразить этот Check
. Можете ли вы мне помочь?
Ответы
Ответ 1
Пожалуйста, попробуйте
var tempval = TempData["var"];
тогда напишите свой оператор if следующим образом
@if (tempval.ToString() == "abcd")
{
<span>Check</span> //Never displayed
}
else
{
<span>@tempval</span>; // Display "abcd"
}
Ответ 2
Попробуйте изменить TempData.Add("var", "abcd");
к
TempData['var'] = "abcd";
Update:
В моем контроллере:
public ActionResult Index()
{
TempData["var"] = "abcd";
return View();
}
На мой взгляд:
// I cast to string to make sure it checking for the correct TempData (string)
@if ((string)TempData["var"] == "abcd")
{
<span>Check</span>
}
else
{
@TempData["var"].ToString()
}