- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ActionFilter 覆盖 OnActionExecuted 方法。 filterContext.Controller.ViewData.Model 在 POST 操作中始终为 null。我确实发现以下文章似乎在说它不应该为空,但这一定是 MVC 的早期版本。这是MVC3。我应该得到什么?
Model availability inside ActionFilter
更新:
我已经找到了原始问题的答案。我有一个自定义的 ActionResult,它输出带有自定义日期格式化程序的 JSON。问题是模型没有在 Controller 中设置。
在我的自定义 ActionResult 中,ExecuteResult 方法传递了 ControllerContext,如果我可以在那里设置模型,那就太好了:
context.Controller.ViewData.Model = _data;
ControllerContext.Controller.ViewData.Model = model;
View(model);
public JsonNetResult(object data, Controller controller) {
SerializerSettings = new JsonSerializerSettings();
_data = data;
controller.ControllerContext.Controller.ViewData.Model = _data;
}
最佳答案
另一种方法是使用基本 Controller 来自动处理 Action 参数集合的存储以供以后使用:
public class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Items["ActionParms"] = filterContext.ActionParameters.ToDictionary(p => p.Key, p => p.Value);
base.OnActionExecuting(filterContext);
}
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var dictionary = filterContext.HttpContext.Items["ActionParms"] as Dictionary<string, object>;
if (dictionary != null)
{
foreach (var o in dictionary.Keys)
{
// do something here
}
}
base.OnActionExecuted(filterContext);
}
var action = filterContext.ActionDescriptor.ActionName;
var parms = filterContext.ActionDescriptor.GetParameters();
foreach (var parameterDescriptor in parms)
{
// do something here
}
关于asp.net-mvc-3 - MVC 模型在 OnExecuted 操作过滤器中为空……还是设置模型的更优雅的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155114/
为了进行诊断,OData Controller 中这两个事件的等效操作是什么: 在 Action 开始执行之前。 执行的 Action 我只能找到一个: public class BaseODataC
我有一个包含数百个 TAction 的大型应用程序。它们中的每一个都被使用并实现所需的不同功能。 可以从应用程序捕获( Hook )所有 TAction.OnExecute 吗?是否有任何我可以 Ho
我想稍微简化将表单状态保存到磁盘的过程。我使用我自己的从 TIniFile 派生的 INI 文件类来读取表单中“所有”控件的状态。像这样的东西: procedure TMyIniFile.Read(C
我需要编写一个 Delphi 2009 应用程序,它从套接字读取数据。为此,我需要为 TIdTCPServer.OnExecute 事件编写一个事件处理程序。 我发现了很多在 GUI 应用程序中实现此
我有一个带有这些代码的服务器: procedure TFrmMain.TCPServerExecute(AContext: TIdContext); begin Res := DoRegi
我想创建一个 TCPserver 并根据需要向客户端发送/接收消息,而不是 TCPserver 的 OnExecute 事件。 发送/接收消息没有问题;我确实喜欢这样: procedure TForm
首先开始在 Delphi 7 中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在 OnExecute 事件过程中放置相同的蜂鸣声和日
几周前我开始使用 Indy TCPServer 和 TCPClient,现在,经过大量研究和 SOF 专家(特别是 Lebeau 先生)的帮助,我可以安全地管理客户端连接并向特定客户端发送字符串消息。
我知道我希望从客户端获得多少字节(在此代码中为 100)。如果客户端不给我 100,我根本不需要这个数据包,因为它已损坏。 我遇到客户端提供少于 100 个字节并断开连接的情况。在这种情况下,我正在捕
我正在摆弄 Delphi 2009 提供的 Indy 10,并且在 OnExecute 触发时无法从 IOHandler 获取所有数据... procedure TFormMain.IdTCPServ
我有以下 Web API ActionFilterAttribute namespace namespace.Filters { using System; using System.
一个非常简单的问题,我似乎无法找到明确的答案。 我有一个经典的 TCP Indy 服务器。我以 block 的形式发送数据。每个数据包以 1 个或多个 block 发送。当它到达时,每个数据包都会触发
是否可以让我的TCPServer.OnExecute事件的行为方式与 HTTPServer.OnCommandGet 相同表现: procedure TMainForm.HttpServerComma
我有一个 ActionFilter 覆盖 OnActionExecuted 方法。 filterContext.Controller.ViewData.Model 在 POST 操作中始终为 null
我有这个 TCPServerExecute 事件,我想在手动断开与客户端的连接后停止执行: procedure TMainForm.TCPServerExecute(AContext: TIdCont
我是一名优秀的程序员,十分优秀!