我最近将我们的Intranet Umbraco站点从v4转换为v7.2,并将所有webform主页转换为mvc。 我正在尝试将应该是子操作的usercontrol转换为SurfaceController但是我在尝试调用操作时遇到了可怕的“路由表中没有路由匹配提供的值”错误:
@Html.Action("ServiceStatusInfo", "ServiceStatusSurface")
这只是一个不需要视图或模型的get动作。它只是调用服务器上的操作,服务器更新服务器上的文件,然后通过某些javascript读取。 我已经做了很多搜索,我使用Umbraco 7创建了一个示例解决方案并创建了一个控制器文件夹,然后创建了一个“MySurfaceController”,我能够从示例解决方案的母版页调用该操作,但没有问题,但在最近转换过项目似乎有一些奇怪的路由问题正在进行中。我比较了当前项目和示例项目的web.config,它们几乎有相同的条目(我想也许我错过了一些东西)。似乎我转换的项目没有识别路由。任何帮助将不胜感激。
这是SurfaceController
using Umbraco.Web.Mvc;
using System.Web.Mvc;
namespace MyUmbracoApp.Controllers
{
public class ServiceStatusSurfaceController : SurfaceController
{
// can't reach this either:
public ActionResult Index()
{
return Content("hello world");
}
// this is what I am trying to reach
[ChildActionOnly]
public ActionResult ServiceStatusInfo()
{
// do some stuff to get the status
return CurrentUmbracoPage();
}
}
}
我也尝试使用“PluginController”选项,即使这不是具有“area”属性但同样问题的插件。
也许有一种我不知道的解决方法?
答案 0 :(得分:0)
在动作调用中将StatusInfo更改为ServiceStatusInfo。这应该与行动的名称相匹配。
@Html.Action("ServiceStatusInfo", "ServiceStatusSurface")