TempDataをFormCollection
から入力し、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
を表示できない理由がわかりません。手伝って頂けますか ?
これを試してください
var tempval = TempData["var"];
次に、ifステートメントを次のように記述します
@if (tempval.ToString() == "abcd")
{
<span>Check</span> //Never displayed
}
else
{
<span>@tempval</span>; // Display "abcd"
}
変更してみてください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()
}