【问题标题】:Orchard CMS - How to use themed and httppost attributes togetherOrchard CMS - 如何一起使用主题和 httppost 属性
【发布时间】:2013-12-17 08:46:20
【问题描述】:

我正在使用 Orchard 1.7.2,在我的自定义模块中,我有许多控制器操作,这些操作都用 [Themed] 属性装饰。

我的问题是,当我还使用 [HttpPost] 属性装饰它们中的任何一个时,使用该操作时主题停止工作。

以前有人遇到过这种情况吗?

【问题讨论】:

    标签: asp.net-mvc themes orchardcms orchardcms-1.7


    【解决方案1】:

    当然,您是在告诉操作它不应该为获取请求运行,而应该只为发布请求运行。标记为 post 的操作用于 ajax 请求或将表单发​​送到服务器。 (正如您所指的对页面进行发布请求是合法的,我删除了该部分,但同样不推荐)

    尝试将 IWorkContextAccessor、RequestContext 和 IThemeManager 注入到您的构造函数中,然后在您的操作中执行以下操作:

      contextAccessor.GetContext().CurrentTheme = themeManager.GetRequestTheme(requestContext);
    

    我不知道这是否有效,但至少你有一个起点。

    【讨论】:

    • 否... POST 请求可以合法地返回响应,并且该响应可以是 HTML 文档。想想当您提交表单时……表单的“操作”URL 完全能够返回一个页面供您查看。我的问题是如何让返回的页面成为主题?
    • 你是对的,但据我所知,Orchard 遵循 PRG 模式 (en.wikipedia.org/wiki/Post/Redirect/Get)。每个 ASP.NET MVC 应用程序都应该遵循这种模式。我将编辑我的答案以放置一些可行的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多