Razor TempData不包含任何定义
关于我的TempData[Something],我遇到了一个问题,因为我想定制某个东西的每个内容。下面是我的代码: 控制器 视图: @ifTempData[成功消息]!=无效的 { @TempData[SuccessMessage]。标题@TempData[SuccessMessage]。消息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中,但可以创建一个类并将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>
}