gpt4 book ai didi

c# - 跳过单一方法的所有 Umbraco 魔法

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:22 27 4
gpt4 key购买 nike

我刚刚被指派在使用 Umbraco 的项目中实现一项功能。我的工作基本上是生成特定的 XML 并将其返回给用户。但是我无法让它工作,因为当我创建新 Controller 时(我尝试创建

Controller, RenderMvcController and SurfaceController

) 和其中的方法(如果我只是在现有 Controller 中创建新方法),我在浏览器中输入 url 后收到错误 404。示例:我在其中创建了 TestController 和方法 Index。我尝试过组合,其中 TestController 派生自 RenderMvcController 或 SurfaceController 或只是 Controller。编译之后等我运行的时候

http://my_address/Test 

http://my_address/Test/Index

我从 umbraco 收到 404 错误。我查看了 umbraco 中已经在项目中的其他页面,它们也在 umbraco web 面板中以某种方式配置:

http://my_address/umbraco

我还尝试向现有 Controller 添加新方法,但没有成功(同样是 404 错误)。我从未使用过 Umbraco,我不知道如何配置它。我只想知道是否有任何方法可以创建可在以下位置访问的方法:

http://my_address/MyMethod

http://my_address/MyController/MyMethod

并且会在现有的 Umbraco 项目中返回我将要编程的内容(没有任何 View 、部分 View 等 - 我可以手动设置 Headers 和 ContentType 并且我的内容是纯文本)而无需处理 umbraco管理面板?

感谢您的帮助:)

//编辑

我的想法正式被吹走了......我的 react 取决于文化(我的意思是我根据国家/地区从数据库中提取不同的数据),但这并不像

CurrentCulture.CultureInfo

Umbraco 配置为根据域扩展返回不同的文化(德国为 .de,英国为 .co.uk,丹麦为 .dk - 这只是 umbraco 管理面板中的手动配置,将不同的文化信息和 View 分配给不同的主机名)。常规 Controller 从

RenderModel.CurrentCulture

作为参数传递给 Controller ​​的方法。有没有一种方法可以创建没有为其分配布局/模型的umbraco Controller /方法/anthing(因此我可以显示从外部服务接收的纯 XML 数据)并且仍然可以访问 umbraco 的 RenderModel 文化?我要创建的是如果用户键入 url:

http://my_address.de/myController/myMethod

我的 Controller 将获取当前文化,调用外部服务传递文化作为参数并显示接收到的数据而不将其包装在任何 View 中。示例:

public class myController : SomeBaseUmbracoControllerOrsomething
{
public string/XmlDocument/ActionResult myMethod(RenderModel model)
{
int countryId = myFunctionToTranslateCultureToCountryId(model.CurrentCulture);
return MethodThatCallsExternalServiceAndReturnsXml(countryId);
}
}

很抱歉造成混淆,但我刚刚才了解到这整个与国家/地区的困惑...

最佳答案

你不想用

  • controller,因为这不是由 umbraco 路由进程获取的
  • 您不想使用RenderMvcController,因为这太过分了
  • 您不想使用 Surfacecontroller,因为您没有使用子操作或表单。

您需要的是 UmbracoApiController ( http://our.umbraco.org/documentation/Reference/WebApi/ ) 或者您的 umbraco 版本是 PRE 6.1 然后使用 /Base extension ( http://our.umbraco.org/documentation/Reference/Api/Base/Index )

或者如果你真的想跳过特定路由的所有 umbraco 魔法,将路径添加到 web.config/AppSettings/umbracoReservedUrls。

关于c# - 跳过单一方法的所有 Umbraco 魔法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com