Razor TempData不包含任何定义

Razor TempData不包含任何定义,razor,asp.net-core-mvc,Razor,Asp.net Core Mvc,关于我的TempData[Something],我遇到了一个问题,因为我想定制某个东西的每个内容。下面是我的代码: 控制器 视图: @ifTempData[成功消息]!=无效的 { @TempData[SuccessMessage]。标题@TempData[SuccessMessage]。消息 } 您不能将匿名类型存储到TempData中,但可以创建一个类并将TempData转换为如下所示的类 public class ClsMsg { public string Css

关于我的TempData[Something],我遇到了一个问题,因为我想定制某个东西的每个内容。下面是我的代码:

控制器

视图:

@ifTempData[成功消息]!=无效的 { @TempData[SuccessMessage]。标题@TempData[SuccessMessage]。消息
} 您不能将匿名类型存储到TempData中,但可以创建一个类并将TempData转换为如下所示的类

public class ClsMsg
{
           public string CssClassName { get; set; }
           public string Title { get; set; }
           public string Message  { get; set; }

}
行动中

TempData["SuccessMessage"] = new ClsMsg { CssClassName = "alert-success", Title = "Success!", Message = "You have successfully applied.  Please wait for confirmation.  Thank you!" };
以及

 @if (TempData["SuccessMessage"] != null)
{

    ClsMsg msg = TempData["SuccessMessage"] as ClsMsg;


    <div class="alert @msg.CssClassName">
        <strong>@msg.Title</strong> @msg.Message
    </div>


}

在1找到你的答案。你犯了什么错误?2.控制器不应该决定CSS类,因为这是视图关心的问题。3.控制器不应该决定向用户显示什么错误消息,因为这是视图关心的问题。4.您应该将模型传递给视图,然后在视图中决定要显示的css和消息。
 @if (TempData["SuccessMessage"] != null)
{

    ClsMsg msg = TempData["SuccessMessage"] as ClsMsg;


    <div class="alert @msg.CssClassName">
        <strong>@msg.Title</strong> @msg.Message
    </div>


}