2015-09-16 3 views
0

Я довольно новичок в 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'.

+2

Я думаю, что это дубликат с этим: http://stackoverflow.com/questions/18837256/the-model-item-passed-into-the-dictionary-is-of-type-sitecore-mvc-presentation –

+0

«И сформировал представление для контроллера», можете ли вы показать нам представление? – RvanDalen

+0

Вот сгенерированный вид – user2083513

ответ

1

1. Мое первое предположение, насколько я понял из вашего описания, кажется, что ваша визуализация не перераспределена, и вы имеете предыдущую версию тот же рендеринг на вашей цели развертывания, потому что словарь требуется модель элемента типа «Sitecore.Mvc.Presentation.RenderingModel» в то время как вы четко определить правильную модель на вершине:

model TestMvcTaulantTutorial.Models.Driver 

... так что, вероятно, другой перевод принимаются.

2. Другое предположение, не могли бы вы заменить, что:

return View(driver); 

.. с thу кодом ниже, явно указав свой вид путь, просто чтобы понять, что кастрированный баран является корнем проблемы:

return View("your_correct_view_path", driver); 

3. Кроме того, что я заметил, на взгляд вы должны иметь:

Name : @Model.Name <br/> 
    Text : @Model.Text 

вместо:

Name : Model.Name <br/> 
    Text : Model.Text 
0

Класс драйвера должны наследовать от класса RenderingModel.

public class Driver: Sitecore.Mvc.Presentation.RenderingModel { .. } 
0

Я думаю, что Рван прав. Эта ошибка вызывает создание рендеринга viewrendering, а не рендеринг контроллера. Помните, что в контроллере имя контроллера контроллера не нуждается в «контроллере» за его именем.