web-dev-qa-db-fra.com

Comment vérifier la valeur TempData dans ma vue après un post de formulaire?

Je remplis mes TempData à partir d'une FormCollection et j'essaie ensuite de vérifier la valeur de ma TempData à mon avis avec MVC 4 mais mon instruction if ne fonctionne pas comme prévu. Voici mon code.

Manette :

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

Vue:

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

Cela semble très simple et je ne comprends pas pourquoi je ne peux pas afficher cette Check. Pouvez-vous m'aider ?

12
Alex

S'il vous plaît essayez ceci

var tempval = TempData["var"];

puis écrivez votre déclaration if comme suit

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

Essayez de changer TempData.Add("var", "abcd");

à

TempData['var'] = "abcd";

Mettre à jour:

Dans mon contrôleur:

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

À mon avis:

// 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()
}
6
Lars

Avant de commencer un bloc de code dans MVC View, commencez toujours par utiliser @ {}, écrivez une ligne de code et terminez par un point-virgule (;)

 enter image description here

0
IP Kaal