17

我从 a 填充我的 TempData FormCollection,然后尝试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。你能帮助我吗 ?

4

3 回答 3

22

请试试这个

var tempval = TempData["var"];

然后写你的if语句如下

@if (tempval.ToString() == "abcd") 
{
    <span>Check</span> //Never displayed
}
else
{
    <span>@tempval</span>; // Display "abcd"
}
于 2013-07-25T12:10:04.487 回答
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()
}
于 2013-07-25T12:12:12.577 回答
0

在 MVC 视图中开始任何代码块之前,始终使用 @{ } 开始,然后编写任何代码行并以分号(;)终止

在此处输入图像描述

于 2018-08-30T06:17:01.217 回答