首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动作之间的ASP.NET MVC共享逻辑

问动作之间的ASP.NET MVC共享逻辑
EN

Stack Overflow用户
提问于 2010-02-24 03:08:57
回答 3查看 319关注 0票数 0

我正在建设一个网站,我需要能够通知每个页面上的用户。这个函数看起来很像StackOverflow使用的,黄色(橙色?)顶部的边框。我不想在我所有的行为中重现这个逻辑。干的。

我正在考虑使用操作过滤器,但由于我需要查询我的数据层,这似乎不是解决它的最佳方法。

那么,例如,在每个页面上实现“您有一个以X天结尾的赏金问题”之类的特性的最佳方式是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-24 03:13:40

在ASP.NET MVC2中有Html.RenderAction。如果我没记错的话,对于ASP.NET MVC1.0,在MvcContrib中也有相同的功能。

票数 1
EN

Stack Overflow用户

发布于 2010-02-24 08:14:41

当我有需要在每个操作上执行的逻辑,需要初始化视图数据时,我在基本控制器(我的所有控制器都继承自该方法)的OnResultExecuting方法(在操作运行之后、视图呈现之前调用)中执行此操作,该方法设置我的基本视图数据模型(所有视图数据模型都继承自该模型)上的数据:

代码语言:javascript
复制
public class BaseViewData
{
  public string UserMessage { get; set; }
}

public class BaseController : Controller
{
  protected override void OnResultExecuting(ResultExecutingContext filterContext)
  {
     ViewResult viewResult = filterContext.ActionResult as ViewResult;
     //Only continue if action returned an ActionResult of type ViewResult,
     //and that ViewResults ViewData is of type BaseViewData
     if(viewResult != null && viewResult.ViewData is BaseViewData)
     {
        ((BaseViewData)viewResult.ViewData).UserMessage = userService.GetUserMessage();
     }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2010-02-24 03:15:28

我将使用TempData来存储消息,添加一个帮助程序来呈现消息(如果有),然后在您的母版页中使用它。rails基本上就是这样做的,我一直觉得缺少通知系统(比如flash)是ASP.net MVC中的一个奇怪的漏洞,因为它很容易做到。

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

https://stackoverflow.com/questions/2320938

复制
相关文章

相似问题

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