我将C#代码放在MVC4中的哪里?

问题描述 投票:2回答:2

我只有使用网络表单的经验,但是最近我开始学习MVC4,以扩展我的知识。但是,作为仅对Web表单有经验的人,花了我一段时间才能掌握MVC4。

我基本上已经使用布局和视图为网站设置了显示,并使用控制器调用了视图。

但是我想继续前进并开始为网站提供一个目的,例如注册等,这需要一些繁重的C#编码。

但是我迷失了在哪里放置处理程序等。我认为应该在控制器中进行数据连接和所有后台处理?

如果我错了,请纠正我。

c# asp.net-mvc asp.net-mvc-4 razor
2个回答
4
投票

通常,您可以将c#代码放在任何需要的位置。默认情况下,MVC遵守的唯一约定是ControllersViews文件夹。从技术上讲,Controllers文件夹的唯一原因是因为放置在其中的控制器将默认为MyApp.Controllers命名空间。控制器通过名称和名称空间而不是文件位置(与视图不同)来解析。

我通常要做的是将特定于业务的服务放在Services文件夹中,将实用程序/基础结构放在Infrastructure文件夹中。

但是,您可以随意安排自己的C#代码。


3
投票

MVC(模型视图控制器)。

您在“模型”中的所有数据访问逻辑代码。您的视图和用户界面位于“视图”中。您在“控制器”中的所有业务逻辑代码。

为了使它们彼此交互。这是一个简单的例子:

您的型号代码:

public static List<string> GetCountryData()
{
    List<string> lstCountries = new List<string>();
    var countryData = yourDBContext.Database.SqlQuery<string>("SPROC_GetCountryData");

    if(countryData.Any())
    {
        lstCountries = countryData.ToList<string>();
    }
    return lstCountries;
}

您的控制器代码:

public ActionResult CountryView()
{
    List<string> lstCountries = YourModel.GetCountryData();

    return View(lstCountries);
}

您的视图:

@model List<string>

<ul>
@foreach (var country in @Model)
{
     <li>country</li>
}
</ul>

希望它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.