首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 4通知给用户的消息

MVC 4通知给用户的消息
EN

Stack Overflow用户
提问于 2013-05-10 05:48:21
回答 3查看 2.7K关注 0票数 1

我正在使用控制器-服务-存储库层模式,我是我的应用程序。存储库包含基本CRUD操作和服务层所有业务逻辑,而控制器保持非常精简(他们只调用服务层功能)。

我想发送信息(成功、警告等)。但是我不确定如何从服务层级别进行操作?我使用TempData和一个基类查找了一些解决方案,但这些解决方案似乎只适用于控制器级别。

是否有从服务层将用户通知推送到视图的好解决方案?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-10 05:56:13

看起来,您的应用程序架构中的关注点很好地分离了。保持这种方式是非常明智的--不要让您的服务层了解任何有关UI的信息。

我要做的是为服务层创建一些类,作为执行结果返回。

代码语言:javascript
复制
public class ExecutionResult<T>
{
    public T Result { get; set; }
    public string Message { get; set; }
}

这样,您就可以将Message传递给ViewBag.UserNotification并在您的视图中执行它:

编辑:示例用法:

代码语言:javascript
复制
public class Math
{
    public ExecutionResult<double> Divide(double number, double divideBy)
    {
        if (divideBy == 0)
        {
            return new ExecutionResult<double>
                {
                    Result = double.NaN,
                    Message = "Division by zero is not possible"
                };
        }

        return new ExecutionResult<double>
            {
                Result = number/divideBy
            };
    }
}

这只是个样本。在现实世界中,您将在double中采取不同的方法

票数 2
EN

Stack Overflow用户

发布于 2013-05-10 05:54:11

使用这种模式,您不希望直接从服务层与视图交互,因此可以考虑在每个方法调用时将一些自定义数据传输对象返回给控制器。这些DTO可能包含任何错误消息或通知。然后控制器可以将这些数据传递给视图。

票数 0
EN

Stack Overflow用户

发布于 2013-05-10 05:55:34

一种方法可能是您的服务方法返回布尔值,以指示成功或失败。然后控制器就会知道这一点,并可以采取相应的行动。

另一种方法可能是方法返回一个自定义的"Error“对象,该对象包含有关服务中发生的情况的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16475974

复制
相关文章

相似问题

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