Как вернуть View в другой проект (модули) в основном веб-приложении .net - PullRequest
0 голосов
/ 05 апреля 2019

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

Я пытался с кодами, из которых я нашел,

  1. https://www.codeproject.com/Articles/1109475/Modular-Web-Application-with-ASP-NET-Core
  2. http://www.binaryintellect.net/articles/90d7323f-dcde-40d4-aa30-987bc8db1bf4.aspx

Структура проекта может понравиться,

WebApplicaitonModule1
        Controllers
        Views
        Layouts

WebApplicationModule2
        Controllers
        Views
        Layouts

WebApplicationModule3
        Controllers
        Views
        Layouts

WebApplicationModule4
        Controllers
        Views
        Layouts

Models and DAL are different libraries

Мне нужно что-то вроде того, как перенаправить / вернуть представление из Module1 в представление страницы Module2 ?. это возможно в основных приложениях .net. Я использую .net core 2.1.

Потому что мне нужно получить компоновку по-другому в модуле.

My Imaginary scenario,
 - In WebApplicationModule2 we have a action like this and it will return the view.
public IActionResult Index()
        {
            model objmodel = new model();
            return View("~/Home/Index.cshtml",objmodel );
        }

 then after adding Project Dependency, 
 - from WebApplicationModule1

public IActionResult Index()
        {
            model objmodel = new model(); // same model return from another project.
            return View("~/WebApplicationModule2/Home/Index.cshtml",objmodel );
        }

Как мы можем этого достичь? или есть другие способы сделать это? Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

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

return RedirectToRoute(new 
{ 
    controller = "", 
    action = "Index", 
    model = model
});

Пожалуйста, дайте мне знать, если вам нужна помощь. Приветствия

0 голосов
/ 10 мая 2019

Добавьте дочерние проекты как библиотеку классов Razor.

Добавить как ссылку на проект (это будет включать все файлы ссылок, которые использовались в проекте библиотеки классов Razor) или как ссылку на сборку (которая содержит только .dll и view.dll)

и тогда мы легко сможем назвать виды (лучше, если мы добавим их в виде области),

In WebApplicationModule2 we have an action like this and it will return the view.

public IActionResult Index()
    {
        model objmodel = new model();
        return View("~/Home/Index.cshtml",objmodel );
    }

Добавьте в качестве ссылки на проект или предположительно ссылку из WebApplicationModule1.

public IActionResult Index()
    {
        model objmodel = new model(); // same model return from another project.
        return View("~/WebApplicationModule2/Home/Index.cshtml",objmodel );
    }

проходная модель должна быть такой же.

...