asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ASP.NET MVC,ActionFilters,静态类和传递数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想听听您对以下情况的意见和建议:

我已经定义了一个自定义的ActionFilter,它可以完成一些工作并带来一些价值.我想在控制器动作和模型中使用该值.

现在,我可以使用TemPDAta将此值从ActionFilter传递给任何控制器操作方法,然后将此值分配给传递给返回视图的所有模型.

我相信它会起作用,但是这个TemPDAta会在会话中出现,当时没有人真正需要它.该值应该在单个请求期间专门用于代码,之后它会有效地使其无效.

我提出了两个选择:

>在ActionFilter中,我在OnActioExecuTing()的TemPDAta中设置了这个值,然后在OnActionExecuted()中将其删除.我是否正确理解,当调用OnActionExecuted时,控制器操作已完成,响应已经生成,并且此TemPDAta内容尚未进入会话YET?
>在我的任何自定义静态类(逻辑)中,我只为该值定义一个公共属性,并在需要时使用它.在OnActionExecuTing()和实际执行控制器方法之间,这个静态字段是否会丢失?在服务器上的请求处理期间是否还有其他问题可能会丢失此值?

还有其他/更好的选择我还没虑过吗?

解决方法

我发现使用ActionParameters使您的代码非常容易测试.你可以这样做:
// inside your actionfilter
public override void OnActionExecuTing(ActionExecuTinContext context)
{
    var someData = // ... load some data

    context.ActionParameters["someData"] = someData;
}


// and then in your action method
[ProvideSomeData]
public ViewResult Index(SomeData someData)
{
    // someData will be populated in here
}

大佬总结

以上是大佬教程为你收集整理的ASP.NET MVC,ActionFilters,静态类和传递数据全部内容,希望文章能够帮你解决ASP.NET MVC,ActionFilters,静态类和传递数据所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。