How to check TempData value in my view after a form post?

房东的猫 提交于 2019-11-30 13:55:02

问题


I fill my TempData from a FormCollection and then I try to check the value of my TempData in my view with MVC 4 but my if statement isn't working as I expect. Here is my code.

Controller :

[HttpPost]
public ActionResult TestForm(FormCollection data) 
{
    TempData["username"] = data["var"].ToString(); //data["var"] == "abcd"
    return RedirectToAction("Index");
}

View:

@if (TempData["var"] == "abcd") 
{
    <span>Check</span> //Never displayed
}
else
{
    @TempData["var"]; // Display "abcd"
}

This looks like really simple and I don't understand why I can't display this Check. Can you help me ?


回答1:


Please try this

var tempval = TempData["var"];

then write your if statement as follow

@if (tempval.ToString() == "abcd") 
{
    <span>Check</span> //Never displayed
}
else
{
    <span>@tempval</span>; // Display "abcd"
}



回答2:


Try change TempData.Add("var", "abcd");

to

TempData['var'] = "abcd";

Update:

In My controller:

public ActionResult Index()
    {
        TempData["var"] = "abcd";
        return View();
    }

In my 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()
}



回答3:


Before starting any block of code in MVC View always start using @{ } then write any line of code and terminate with semicolon(;)



来源:https://stackoverflow.com/questions/17857490/how-to-check-tempdata-value-in-my-view-after-a-form-post

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!