Umbraco пользовательская модель - PullRequest
0 голосов
/ 06 июня 2019

Я хотел бы передать данные представлению, я создал модель представления, унаследованную от RenderModel, но при запуске с ошибкой «Элемент» Umbraco.Web.Models.RenderModel »не содержит определение« Тема »

ViewModel:

namespace Umbraco12.Models
{
    public class Home : RenderModel
    {
        public Home(IPublishedContent content, CultureInfo culture) : base(content, culture)
        {
        }

        public string Topic { get; set; }
    }
}

Контроллер:

  public class HomeController : Umbraco.Web.Mvc.RenderMvcController
    {
        // GET: Home
        public ActionResult Home(RenderModel model)
        {

            var home = new Home(model.Content, model.CurrentCulture);
            home.Topic = "aloha";
            //Do some stuff here, then return the base method
            return View("Home", home);
        }
    }

Просмотр:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<Home>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
    Layout = "Master.cshtml";
}
<h1>@Umbraco.Field("topic") : @Model.Topic</h1>

1 Ответ

0 голосов
/ 10 июня 2019

Убедитесь, что псевдоним DocumentType "Home".

Я бы также назвал вашу модель чем-то иным, чем просто Домой, так как это может привести к конфликту и дать неоднозначную ошибку.

Контроллер:

  public class HomeController : Umbraco.Web.Mvc.RenderMvcController
    {
        // GET: Home
        public ActionResult Index(RenderModel model)
        {

            var home = new Home(model.Content, model.CurrentCulture);
            home.Topic = "aloha";
            //Do some stuff here, then return the base method
            return View("Home", home);
        }
    }

Вид:

@inherits UmbracoViewPage<Umbraco12.Models.Home>

@{
    Layout = "Master.cshtml";
}
<h1>@Model.Topic</h1>
...