Umbraco 5 контроллер поверхности и частичный макрос

Я играю с Umbraco 5 (полный новичок) и в настоящее время пытаюсь поэкспериментировать с контроллером поверхности и макросами.

Я создал базовый контроллер поверхности:

public class TestSurfaceController : SurfaceController
{
    //
    // GET: /TestSurface/

    [ChildActionOnly]
    public ActionResult GetTest()
    {
        List<Test> test = new List<Test>();
        test.Add(new Test { TestTitle = "Test" });

        return View(test);
    }

}

И частичный макрос:

@inherits PartialViewMacroPage
@using Umbraco.Cms.Web
@using Umbraco.Cms.Web.Macros
@using Umbraco.Framework

@model IEnumerable<Umbraco.Models.Test>

<ul>
  @foreach (var test in Model)
  {
    <li>@test.TestTitle</li>
  }
</ul>

И на моем домашнем шаблоне я называю это:

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
Layout = "_Layout.cshtml";
 }

@section head
{
@Umbraco.RenderMacro("getTest")
}

Как мне заставить его просто отображать тест в ul? Я либо получаю сообщение об ошибке, в котором говорится, что я не могу использовать наследование, если используется модель, а затем, если я забираю наследство, я получаю сообщение о том, что предоставленная модель не соответствует ожидаемой.

1 ответ

Решение

@inherits RenderViewPage Удалите эту строку с вашей частичной страницы, если вы хотите, я могу опубликовать пример действия контроллера рабочей поверхности и частичное представление. надеюсь, это поможет. Рабочий пример ниже,

public class MDSSurfaceController : SurfaceController
{        
    public MDSSurfaceController(IRoutableRequestContext routableRequestContext)
        : base(routableRequestContext)
    {
    }
    [ChildActionOnly]
    public PartialViewResult ApartmentListMacro(string apartmentType, string Name, string PropertyRfDicItem, string RatesperNightDict, string SleepsDict, string BedroomsDict, string BathroomsDict, string ViewDict)
    {
        ApartmentListModel apM = new ApartmentListModel();
        //initialize model           
        return PartialView(apM);
    }

Тогда мой частичный вид

@using Umbraco.Cms.Packages.SystemInfo.Models
@model Umbraco.Cms.Packages.SystemInfo.Models.ApartmentListModel
@{
//Html Code
}
Другие вопросы по тегам