C# WebMatrix-为CSHTML页面创建控制器

C# WebMatrix-为CSHTML页面创建控制器,c#,asp.net,asp.net-mvc,razor,webmatrix,C#,Asp.net,Asp.net Mvc,Razor,Webmatrix,我在WebMatrix的网站上工作。我最近问了一个关于从数据库获取数据的问题。当我尝试在CSHTML页面中编写数据逻辑时,我很快被告知这样做是错误的,因为我违背了MVC的原则。问题是,MVC在VisualStudio2010中对我来说很容易,在那里我有一个视图page.aspx,每个页面都有一个控制器page.aspx.cs,但在WebMatrix中,我使用的是Razor C#语法,所以我的页面只是一个page.cshtml文件。当我创建一个新站点或新文件时,没有MVC模板,所以我必须自己创建视

我在WebMatrix的网站上工作。我最近问了一个关于从数据库获取数据的问题。当我尝试在CSHTML页面中编写数据逻辑时,我很快被告知这样做是错误的,因为我违背了MVC的原则。问题是,MVC在VisualStudio2010中对我来说很容易,在那里我有一个视图
page.aspx
,每个页面都有一个控制器
page.aspx.cs
,但在WebMatrix中,我使用的是Razor C#语法,所以我的页面只是一个
page.cshtml
文件。当我创建一个新站点或新文件时,没有MVC模板,所以我必须自己创建视图和控制器


如何在
page.cshtml
中显示使用控制器从数据库获取的数据(我的控制器是否为'page.cshtml.cs')?换句话说,如何将页面数据逻辑与其实际内容/标记/视图分离?

我认为您将ASP.NET MVC与WebMatrix网页混淆了。您只使用所有代码都在Razor模板中的网页。没有控制器的概念

但即使在WebMatrix中,您也可以在单独的文件中分离数据访问代码。创建一个名为
~/App\u code
的特殊文件夹,在该文件夹中可以创建.NET类。例如,您可以有一个
DataAccess.cs
文件,您可以在其中放置数据访问逻辑。还可以引用已创建的外部程序集。例如:

@using MyNamespace

@{
    DataAccess myClass = new DataAccess();
    ...
}

我就是这么想的,但是那些评论我的问题的人因为MVC的糟糕使用而把我钉在十字架上,即使我确信我根本没有使用MVC,这也说服了我。要么这些人不知道ASP.NET MVC和WebMatrix网页之间的区别,要么你在问题中没有解释这一点,要么你没有使用适当的标签(顺便说一句,就像这个问题一样-您使用了与您的问题无关的
asp.NETMVC
标记)。不管怎样,现在你知道区别了。我在标签中使用了“WebMatrix”和“Razor”。我没有得到任何东西,除了对我不知道MVC如何工作的屈尊评价。无论如何,感谢你的澄清。另外,如果我制作了一个名为
MyFunc()的函数
DataAccess.cs
中,我可以从任何页面调用它吗?
MyFunc()
能够输出HTML?或者C#文件中不允许使用标记?首先,您不能在C#文件中声明函数。您可以声明类,这些类可以包含函数。如果您在C#文件中定义了类,您可以从Razor页面调用它。但是您不能返回标记,这不是C#文件应该做的。您应该ld只返回模型和其他类,并根据此函数调用的结果在Razor页面中构建标记。是的,在使用它之后,我发现了这一点,这是我应该首先做的。