我正在建立一种类似于模块化编程的体系结构,但是我想将视图从一个项目返回到另一个项目。
我尝试使用从中找到的代码
项目结构可能喜欢
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 );
}
我们如何实现这一目标?还是有其他方法可以做到这一点?任何帮助,谢谢。
答案 0 :(得分:1)
我认为您可以使用重定向来进行这样的路由。我不知道您的控制器名称,因此您需要传入要重定向的控制器,以及要传入该控制器方法的模型
return RedirectToRoute(new
{
controller = "",
action = "Index",
model = model
});
如果您需要任何帮助,请告诉我。干杯
答案 1 :(得分:0)
将子项目添加为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 );
}
传递的模型应该相同。