繁体   English   中英

如何将View返回到.net核心Web应用程序中的另一个项目(模块)

[英]How to return View into another project (modules) in .net core web application

我正在建立一种类似于模块化编程的体系结构,但是我想将视图从一个项目返回到另一个项目。

我尝试使用从中找到的代码,

  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。

因为我需要在Module明智地获得不同的布局。

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 );
        }

我们怎样才能做到这一点? 还是有其他方法可以做到这一点? 任何帮助表示赞赏。

我认为您可以使用重定向来进行这样的路由。 我不知道您的控制器名称,因此您需要传入要重定向到的控制器,以及传入该控制器方法的模型

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

如果您需要任何帮助,请告诉我。 干杯

将子项目添加为Razor类库。

添加为项目参考(将包括Razor类库项目中使用的所有参考文件)或作为程序集参考(仅包含.dll和view.dll)

然后我们可以很容易地调用视图(最好将其添加为Area明智),

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 );
    }

传递的模型应该相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM