我正在使用WebMatrix开发一个网站。我最近问了一个关于从数据库中获取数据的问题。当我尝试在我的CSHTML页面中编写数据逻辑时,我很快被告知我做错了,因为我与MVC的主体相矛盾。问题是,在Visual Studio 2010中我很容易使用MVC,每个页面都有一个视图page.aspx
和一个控制器page.aspx.cs
,但在WebMatrix中,我使用的是Razor C#语法,所以我的页面只是一个page.cshtml
文件。当我创建新站点或新文件时,没有MVC模板,所以我必须自己创建视图和控制器。
如何在page.cshtml
中显示使用控制器从数据库中获取的数据(我的控制器是'page.cshtml.cs'?)?换句话说,如何将页面数据逻辑与其实际内容/标记/视图分开?
答案 0 :(得分:3)
我认为您将ASP.NET MVC与WebMatrix WebPages混淆。您只使用WebPages,其中所有代码都在Razor模板中。没有控制器的概念。
但即使在WebMatrix中,您也可以将数据访问代码分开到单独的文件中。创建一个名为~/App_Code
的特殊文件夹,在此文件夹中可以创建.NET类。例如,您可以拥有一个DataAccess.cs
文件,您可以在其中放置数据访问逻辑。您还可以引用已创建的外部程序集。例如:
@using MyNamespace
@{
DataAccess myClass = new DataAccess();
...
}