如何在Umbraco 7.1.8中使用SurfaceController时修复无路由错误?

时间:2014-10-27 22:51:44

标签: asp.net-mvc umbraco umbraco7

我正在试图弄清楚如何使一个简单的Contact Form SurfaceController工作。问题是,当我尝试导航到“联系我们”页面时,我得到路由表中的“无路由”与提供的值匹配。"错误。

我的表面控制器:

namespace UmbracoSurface2.Controllers
{
    public class ContactFormSurfaceController : SurfaceController
    {
        public ActionResult Index()
        {
            return PartialView("ContactForm", new ContactFormViewModel());
        }
    }
}

我的ContactForm部分:

@model UmbracoSurface2.Models.ContactFormViewModel

<form>
    <div class="controls controls-row">
        @Html.TextBoxFor(m => m.Name)
        @Html.TextBoxFor(m => m.Email)
    </div>
    <div class="controls">
        @Html.TextAreaFor(m => m.Message, new { rows="5" })
    </div>
    <div class="controls">
        <button id="contact-submit" type="submit" class="btn btn-primary input-medium pull-right">Submit</button>
    </div>
</form>    

和我的模板:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    Layout = "Master.cshtml";
}
@Html.Action("Index", "ContactFormController")

我和我发现的截屏和示例之间的一个重大区别是我使用的是Visual Studio 2013,因此ASP.NET网站模板有一个较新版本的MVC,我必须删除它获取UmbracoCms NuGet包进行安装。我也尝试过,而不是在开始时将MVC添加到项目中。

任何帮助/建议都将不胜感激,

杰森

1 个答案:

答案 0 :(得分:2)

好的,根据Dan在Umbraco论坛上的答案here,问题是我的一个愚蠢的错误。模板中的@ Html.Action行应为:

@Html.Action("Index", "ContactFormSurface")

杰森