在项目之间共享控制器和视图

时间:2017-09-10 14:34:06

标签: c# asp.net-mvc razor

我正在尝试为我正在开发的Web框架创建一个良好的基础架构到目前为止我有以下结构

solitude.admin web项目保存控制器和视图我如何创建这个我创建了一个类库但看到你不能有web.config那里

solitude.core将包含我的所有工具和模型

solitude.framework将是cms平台的核心和核心我的问题是如何为asp.net mvc 4.6创建一个类库项目以允许控制器和视图共享我添加剃刀到dll但我不认为这是正确的方法

solitude.mvc这将包含网站的前端我尝试了以下更改项目guids以允许共享但它无法正常工作 enter image description here

我也改变了aricltes上建议的项目类型guids,但是我没有尝试模仿我们的其他平台已经工作以进一步理解我的想法。

 <ProjectGuid>{152C761A-DD2E-4C1F-AF89-DFB2547A3BCA}</ProjectGuid>
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>solitude.admin</RootNamespace>
    <AssemblyName>solitude.admin</AssemblyName>
    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>

另一点是,如果我有两个sep项目管理员和网站,如果用户输入www.domain.com/admin但又是两个独立的网络项目,那怎么会告诉管理员?

2 个答案:

答案 0 :(得分:0)

我认为关注点分离很好。但是有一些问题:

1.-为什么不制作“solitude.admin”另一个网络应用项目?

2.-为什么不使用预期的naming conventions?那是你到那里的很多小册子。

3.-您为什么要/需要共享控制器?基本上,必须有一个

return View();
在他们里面。

对于视图,您可以根据参数创建一些组件(主要是打印出一些HTML)。您已经拥有Shared Views但是对于同一个项目。

答案 1 :(得分:0)

我完全理解你。我处于同样的境地。我建议你看看AREAS。我还在学习它,但对于我用Google搜索的内容,这是在项目之间共享视图和控制器的正确方法。 这是一个很好的link