我从FormCollection
填充我的TempData,然后我尝试使用MVC 4检查我的TempData
视图中的值,但我的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
。你能救我吗?
答案 0 :(得分:19)
请试试这个
var tempval = TempData["var"];
然后写下你的if语句如下
@if (tempval.ToString() == "abcd")
{
<span>Check</span> //Never displayed
}
else
{
<span>@tempval</span>; // Display "abcd"
}
答案 1 :(得分:6)
尝试更改TempData.Add("var", "abcd");
到
TempData['var'] = "abcd";
更新
在我的控制器中:
public ActionResult Index()
{
TempData["var"] = "abcd";
return View();
}
在我看来:
// I cast to string to make sure it's checking for the correct TempData (string)
@if ((string)TempData["var"] == "abcd")
{
<span>Check</span>
}
else
{
@TempData["var"].ToString()
}
答案 2 :(得分:0)