2013-07-08 156 views
0

我只有使用过webforms的经验,但最近我开始学习MVC4以拓宽知识面。然而,作为一个只有webforms经验的人,我花了一段时间去掌握MVC4。我在哪里将我的C#代码放在MVC4中?

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

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

但是我迷失在我应该放置处理程序的地方等我想我应该做我的数据连接和控制器中的所有页内进程?

如果我错了,请纠正我。

+4

在开始编码之前先阅读关于asp.nect mvc的教程 – Cris

+1

This [link](http://www.codeproject.com/Articles/70061/Architecture-Guide-ASP-NET-MVC-Framework-N-tier- En)可以帮助您了解MVC应用程序的架构。 – Paritosh

回答

3

通常,你可以把你的C#代码放在任何你想要的地方。 MVC默认遵守的约定是ControllersViews文件夹。从技术上讲,Controllers文件夹的唯一原因是因为放置在那里的控制器将默认为MyApp.Controllers命名空间。控制器是通过名称和名称空间来解析的,而不是文件位置(与Views不同)。

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

但是,您可以自由安排自己喜欢的c#代码。

+1

+1由于信息清楚,信息清晰。为了补充这一点,OP,我建议你阅读“洋葱建筑”。从[杰弗里巴勒莫的介绍]开始(http://jeffreypalermo.com/blog/the-onion-architecture-part-1/)并从那里开始。它确实帮助我理解如何以有用的方式构建MVC应用程序。 –

+0

朋友是否对你的C#代码很好,直接放进View ??而我们用的是 Ajax。 它对页面性能有影响吗? –

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> 

希望这将有助于一些。

相关问题