首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tempdata作为错误模型

使用tempdata作为错误模型
EN

Stack Overflow用户
提问于 2016-04-28 21:54:23
回答 2查看 417关注 0票数 0

我使用TempData处理用户消息。

当我尝试这样做时,它告诉我TempData在当前上下文中不存在。

代码语言:javascript
复制
public class ServerMessage
{
    public void appendAlertMessage(string message, ServerMessageClass messageClass)
    {
        if(TempData["alertMessage"] == null) 
            TempData["alertMessage"] = message;
        else 
            TempData["alertMessage"] += "\n" + message;

        if(TempData["alertClass"] != ServerMessageClass.Error)
            TempData["alertClass"] = messageClass;

    }
}

public class ServerMessageClass
{
    public const string Success = "success";
    public const string Warning = "warning";
    public const string Error = "error";
}

有没有其他方法可以做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2016-04-28 21:59:46

我相信你得到了一个编译错误。TempDataControllerBase的属性。所以你不能在控制器类之外使用它。

请参阅此链接:

https://msdn.microsoft.com/en-in/library/system.web.mvc.controllerbase.tempdata(v=vs.118).aspx

据我所知,将这个检查保持在Controller中是可以的。您可以在控制器中使用私有方法,但这不是一个好的做法。

票数 0
EN

Stack Overflow用户

发布于 2016-04-28 22:00:41

TempData只存在于控制器本身的上下文中。

您可能需要考虑显式继承Controller类以公开它,或者考虑在您的类中构建消息,将TempData设置为返回的值(即消息)。

忽略以下内容(这只是一个想法,但不受支持)

如果您计划对其进行编辑或更改,则可以考虑通过ref关键字将其作为引用传递,并以这种方式更新它:

代码语言:javascript
复制
 // Calling the method (assumingly from your Controller)
 ServerMessage.AppendAlertMessage(string message, ServerMessage messageClass, ref TempData);

那么你应该能够在你的方法中访问它:

代码语言:javascript
复制
public void appendAlertMessage(string message, ServerMessageClass messageClass, ref TempDataDictionary tempData)
{
      // Update the TempData using tempData["foo"] = message, etc.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36916816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档