C# 跳过单一方法的所有翁布拉科魔术
我刚刚被指派在使用Umbraco的项目中实现一项功能。我的工作基本上是生成特定的XML并将其返回给用户。但是我无法让它工作,因为当我创建新控制器时(我已经尝试创建C# 跳过单一方法的所有翁布拉科魔术,c#,asp.net-mvc,umbraco,C#,Asp.net Mvc,Umbraco,我刚刚被指派在使用Umbraco的项目中实现一项功能。我的工作基本上是生成特定的XML并将其返回给用户。但是我无法让它工作,因为当我创建新控制器时(我已经尝试创建 Controller, RenderMvcController and SurfaceController )和其中的方法(若我只是在现有控制器中创建新方法),在浏览器中键入url后,我会得到错误404。示例:我在其中创建TestController和方法索引。我尝试过TestController是从RenderMvcControl
Controller, RenderMvcController and SurfaceController
)和其中的方法(若我只是在现有控制器中创建新方法),在浏览器中键入url后,我会得到错误404。示例:我在其中创建TestController和方法索引。我尝试过TestController是从RenderMvcController或SurfaceController或仅仅是Controller派生出来的组合。编译后等我运行的时候
http://my_address/Test
或
我从翁布拉科得到404错误。我查看了umbraco中已经在项目中的另一个页面,它们也在umbraco web面板中以某种方式进行了配置:
http://my_address/umbraco
我还尝试向现有的控制器添加新方法,但没有成功(同样是404错误)。我从未使用过umbraco,也不知道如何配置它。我只想知道是否有任何方法可以创建方法,该方法可在以下位置访问:
http://my_address/MyMethod
或
在现有的Umbraco项目中,将返回我将要编程的内容(没有任何视图、部分视图等-我可以手动设置标题和内容类型,我的内容是纯文本),而无需处理Umbraco管理面板
谢谢你的帮助:)
//编辑
我的心被正式吹了。。。我的回答是文化相关的(我的意思是,我从数据库中提取不同的数据取决于国家),但它并没有那么简单
CurrentCulture.CultureInfo
Umbraco配置为根据域扩展返回不同的区域性(德国代表.de,英国代表.co.uk,Dennmark代表.dk-这只是Umbraco管理面板中的手动配置,为不同的主机名分配不同的区域性信息和视图)。常规控制器从中获取此修改的区域性
RenderModel.CurrentCulture
作为参数传递给控制器的方法。是否有一种方法可以创建umbraco控制器/方法/安婷,它不会分配布局/模型(这样我就可以显示从外部服务收到的纯XML数据),并且仍然可以访问umbraco的RenderModel区域性?我试图创建的是,如果用户键入url:
http://my_address.de/myController/myMethod
我的控制器将获取当前区域性,调用外部服务传递区域性作为参数,并显示接收到的数据,而不将其包装到任何视图中。例如:
public class myController : SomeBaseUmbracoControllerOrsomething
{
public string/XmlDocument/ActionResult myMethod(RenderModel model)
{
int countryId = myFunctionToTranslateCultureToCountryId(model.CurrentCulture);
return MethodThatCallsExternalServiceAndReturnsXml(countryId);
}
}
很抱歉搞混了,但我刚刚了解到了这些国家的混乱情况…您不想使用
- 控制器,因为这不是umbraco路由过程所选择的
- 您不想使用RenderMvcController,因为这太过分了
- 您不想使用Surfacecontroller,因为您没有使用子动作或窗体
或者,如果您确实想跳过某条路线的所有umbraco magic,请将路径添加到web.config/AppSettings/umbracoReservedUrls。如果您创建
SurfaceController
,请键入http://my_address/umbraco/surface/yourcontroller/youraction
http://my_address.de/myController/myMethod
public class myController : SomeBaseUmbracoControllerOrsomething
{
public string/XmlDocument/ActionResult myMethod(RenderModel model)
{
int countryId = myFunctionToTranslateCultureToCountryId(model.CurrentCulture);
return MethodThatCallsExternalServiceAndReturnsXml(countryId);
}
}