asp.net-mvc 如何在表单发布后在我的视图中检查 TempData 值?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17857490/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 03:02:47  来源:igfitidea点击:

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

asp.net-mvcif-statementviewtempdata

提问by Alex

I fill my TempData from a FormCollectionand then I try to check the value of my TempDatain my view with MVC 4 but my ifstatement isn't working as I expect. Here is my code.

我从 a 填充我的 TempData FormCollection,然后我尝试TempData使用 MVC 4检查我在视图中的值,但我的if语句没有按我预期的那样工作。这是我的代码。

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 ?

这看起来很简单,我不明白为什么我不能显示 this Check。你能帮助我吗 ?

回答by Elvin Mammadov

Please try this

请试试这个

var tempval = TempData["var"];

then write your if statement as follow

然后写下你的if语句如下

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

回答by Lars

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

尝试改变 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()
}

回答by Ishwor Khanal

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

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

enter image description here

在此处输入图片说明