Я довольно новичок в sitecore, и я столкнулся с проблемой при рендеринге контроллера.Sitecore MVC Sitecore.Mvc.Presentation.RenderingModel
Как вы можете видеть снизу, я создал «Mainlayout» и поместил заполнители.
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
@Html.Sitecore().Placeholder("content")
@Html.Sitecore().Placeholder("content1")
</div>
<!-- /.row -->
</div>
<!-- /.container-fluid -->
</div>
После этого я создал класс драйвера, который содержит Имя и текстовые свойства
public class Driver
{
public HtmlString Name { get; set; }
public HtmlString Text { get; set; }
}
Третья картина имеет метод для получения драйвера.
public class DriverRepository
{
public Driver GetDriver()
{
var driver = new Driver();
var rendering = RenderingContext.Current.Rendering;
var datasource = rendering.Item;
driver.Name = new HtmlString(FieldRenderer.Render(datasource, "Name"));
driver.Text = new HtmlString(FieldRenderer.Render(datasource, "Text"));
return driver;
}
}
После этого я создал контроллер Driver с ActionResult Рекомендуемые
public class DriverController : Controller {
// GET: Driver public ActionResult Featured() {
var repository = new DriverRepository();
var driver = repository.GetDriver();
return View(driver);
}
}
И сгенерировал вид для контроллера
using Sitecore.Mvc
model TestMvcTaulantTutorial.Models.Driver
Name : Model.Name <br />
Text : Model.Text
После этого в Sitecore я создал контроллер рендеринга для драйвера контроллер
Я указал на домашнюю страницу этот рендеринг на b е читать Content1
Но когда я раскрываю возвращает мне эту ошибку
Модель элемент передается в словарь типа «TestMvcTaulantTutorial.Models.Driver», но этот словарь требует пункт в модели типа 'Sitecore.Mvc.Presentation.RenderingModel'.
Я думаю, что это дубликат с этим: http://stackoverflow.com/questions/18837256/the-model-item-passed-into-the-dictionary-is-of-type-sitecore-mvc-presentation –
«И сформировал представление для контроллера», можете ли вы показать нам представление? – RvanDalen
Вот сгенерированный вид – user2083513