Как использовать классы ModelBinder в контроллерах при использовании Umbraco Cloud - PullRequest
0 голосов
/ 09 июня 2018

Первый вопрос ... У меня есть проект Umbraco Cloud, который я только начал и впервые хочу использовать ModelBinder.

При использовании Umbraco Cloud вместо веб-приложения у вас есть веб-сайт.

У вас также есть .Core Project, где у вас есть папка контроллеров.Как получить доступ к сгенерированным строго типизированным классам в моих контроллерах в моем проекте .Core, когда классы создаются в проекте Website?

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

При использовании связывателя моделей, предполагая, что я могу получить классы строгих типов в своем контроллере, если яЯ все еще делаю собственный класс модели представления. Теперь у меня есть строго типизированный объект. Могу ли я просто передать это прямо в представление ... Я немного озадачен правильным подходом, моя интуиция говорит мне, что я все еще должен использовать собственныйПосмотреть модель.

Спасибо заранее.

1 Ответ

0 голосов
/ 09 июня 2018

ОК, похоже, у меня все работает, но я не уверен на 100%, так ли это должно быть.

Шаг 1.

Режим привязки модели в веб-конфигурации передается в DLL со следующими настройками

<add key="Umbraco.ModelsBuilder.Enable" value="true" />
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" />

Это заставит Umbraco генерировать классы моделей на основе ваших типов документов.- (нажав кнопку «Создать модель»), которая находится в:

Umbraco.Web.PublishedContentModels.dll в папке bin.вашего проекта .Web

Шаг 2

Из проекта .Core Добавьте ссылку на Umbraco.Web.PublishedContentModels.dll, папку bin проекта .Web.

Теперь в ваших классах контроллеров в вашем проекте .core вы можете теперь использовать свою строго типизированную сгенерированную модель, например:

public ActionResult Index(HomePage model)
{

        var myvalue = model.SEotitle;  // Look strong typed 

        //more logic here
        return View(model);
}

Хотелось бы знать, используют ли связыватели моделей то, как это делают другие?в облаке.

...