我从未有过使用网络表单的经验,但我最近开始学习MVC4以扩展我的知识。然而,作为一个只有webforms经验的人,我花了一些时间来掌握MVC4。
我基本上使用布局和视图设置网站的显示,并使用控制器调用视图。
但是我想继续前进并开始给网站一个目的,比如注册等,这需要一些繁重的c#编码。
然而,我失去了我应该放置处理程序等的地方。我想我应该在控制器中进行数据连接和所有幕后进程?
如果我错了,请纠正我。
答案 0 :(得分:3)
通常,您可以将c#代码放在任何地方。默认情况下,MVC遵循的唯一约定是Controllers
和Views
文件夹。从技术上讲,Controllers
文件夹的唯一原因是因为放在那里的控制器将默认为MyApp.Controllers
命名空间。控制器按名称和命名空间解析,而不是文件位置(与视图不同)。
我通常做的是将特定于业务的服务放在Services
文件夹中,将实用程序/基础结构放在Infrastructure
文件夹中。
但是,您可以随意安排自己的c#代码。
答案 1 :(得分:3)
MVC(模型视图控制器)。
“模型”中的所有数据访问逻辑代码。 “视图”中的视图和UI。 您在“控制器”中的所有业务逻辑代码。
为了让他们互相交流。这是一个简单的例子:
您的型号代码:
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>
希望它会有所帮助。