【发布时间】:2020-12-15 20:40:56
【问题描述】:
我开始使用 MVC,我正在关注 this sample。
在其中,我们发现Blog 类型包含在Controller 的类文件中,在Mvc3ViewDemo.Controllers 命名空间中。这在设计方法中有点禁忌,因为每个类都应该保存在自己的文件中。 (至少这是我的特殊约定。)
但是当我们将它移到它自己的文件中时——即使使用相同的命名空间——控制器也看不到它:
(在 VB.NET 中,顶级命名空间Mvc3ViewDemo 是在项目级别指定的。)
我尝试将文件放在App_Code 和项目根目录中:
Namespace Controllers
Public Class Blog
Public Property Name As String
Public Property Url As String
End Class
End Namespace
视图可以看到:
@ModelType IEnumerable(Of Controllers.Blog)
@Code
ViewData("Title") = "Blog"
End Code
<h2>BLOG</h2>
<ul>
@For Each oBlog In Model
@<li><a href="@oBlog.Url">@oBlog.Name</a></li>
Next
</ul>
...但控制器不能。
如果我们把它放在Models文件夹中,Controller和View都看不到它。
恐怖的恐怖! MVC 是否会强制我将所有类放在与控制器相同的文件中?当我们需要一个可供两个或更多控制器使用的模型时,我们该怎么办?
--编辑--
此外,我无法将目标命名空间的Imports (using) 语句添加到 Controller 类文件:
【问题讨论】:
-
你只需要在需要类的地方添加一个using语句,然后你就可以在任何你需要的地方拥有它
-
对不起,我忘了提到这是我尝试的第一件事(我知道我忘记了一些东西)。我已经更新了我的问题。这是一个奇怪的问题。它应该“正常工作”。
-
这是文件的构建操作。看我的回答。
标签: asp.net-mvc class asp.net-mvc-5 architecture visual-studio-2019