我对.net框架和整个MVC编程哲学相当陌生。有人可以澄清并给我一个基本的解释,说明控制器如何使用C#与网站进行交互?我明白如何用C#编写代码,并理解框架的某些方面,但我不明白它们是如何结合在一起的。了解MVC4控制器
回答
模型 - 是一种表示某种对象(通常为一种)的数据结构。其目的是读取,写入和管理对底层对象的访问,目的是坚持应用程序状态。
查看 - 用于向用户显示可视界面的组件,可能是使用模型。它可能是一个简单的表格,或者是一个完整网页的复杂组合。
控制器 - 用户驱动的应用程序逻辑层位于视图和模型之间。它处理用户交互,加载模型并向用户发送视图。它根据用户请求确定发送到视图的模型。
应用程序的整体文件夹结构可能如下所示。
>> Website
>> Controllers
>> Models
>> Views
在C#MVC每个控制器必须具有后缀Controller
中的名称,他们必须扩展控制器类和具有在视图中的文件夹的名称的前缀(不Controller
)的一个文件夹。此文件夹将包含与控制器上特定操作相关的所有视图。
控制器可以包含任意数量的定义为公共功能的动作。默认情况下,从控制器操作返回结果时,视图的名称必须与操作的名称相对应。但是,您也可以按名称指定视图。从控制器加载视图时,可以将对象作为模型发送到视图,并通过生成其内容。
控制器可以加载任何模型,不受任何限制。
一个Account
控制器定义如下,采取行动Login
。控制器放置在/Controllers
文件夹中的AccountController.cs
文件中,并且该控制器的任何视图(Login
,在本例中为文件名Login.cshtml
)都放在/Views/Account
文件夹中。
注意:命名约定必须正确,因为在控制器和视图之间使用名称来链接数据。
public class AccountController : Controller
{
public ActionResult Login(string returnUrl)
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index","Site");
}
return View("Login", new LogOnModel());
}
}
可通过http://www.mysite.com/Account/Login
访问。如果用户通过身份验证,则控制器将重定向到主站点控制器,如果用户未登录,则会显示Login
视图,该视图从指定的LogOnModel
加载数据。
这实际上只是触及了可能的表面。阅读ScottGu的一些精彩文章的一些在线信息,深入探讨如何使用MVC。
ASP.NET MVC Framework Overview
ASP.NET MVC Framework How To - Part 1 // Part 2 // Part 3 // Part 4
注:这些文章是因为他们对MVC 1版早在2007年写的略显陈旧,但怎样的概念模型,视图和控制器交互仍然适用。
真的挖这个例子。谢谢。 –
明确的解释。真棒!谢谢... :) – Nageswaran
控制器有点作为内部Web服务。他们将您的服务器端代码暴露给您的视图,并允许他们调用控制器。就模式而言,大多数人认为控制器应尽可能薄。如果存在繁重的业务逻辑或其他业务逻辑,则应将其抽象为应用程序的另一部分。在我看来,控制器在那里为视图提供一些要调用的内容,然后返回该数据,无论是text/html,json还是xml。
这里是一个伟大的信息财富,直接从来源:http://www.asp.net/mvc/mvc4
具体到现场,我会强烈建议的教程。它将使您更清楚地了解模型,视图和控制器如何相互交互和相互依赖。 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
感谢您的资源! –
控制器是一个具有方法的类,这些方法被称为动作,您将这些动作视为“视图”(cshtml文件)。
//This is your controller
public class HomeController : Controller
{
// This is your action
public ActionResult Index()
{
return View();
}
}
您可以右键单击“索引”操作,然后选择“添加视图...”这将创建atached到行动的新观点。
为了获得这一观点,你会做这样的事情:本地主机/控制器/动作 在这种情况下,它应该是:本地主机/首页/指数,其中首页=控制器,指数=动作
你应该阅读有关the MVC pattern
微软有一些很好的tutorials for beginers
感谢您的资源! –
控制器在ASP.NET MVC是韩德尔您的应用程序逻辑的请求响应的对象。它会根据请求创建(例如HTTP请求),并且直到由View层创建的响应才可用。之后,它将是一个不可用的对象(并且GC很快就会释放其分配的内存),并且对于另一个请求,必须创建一个新的控制器对象,等等。
我认为这个定义很明显,它为什么必须是轻量级的,以及如何使用它。
- 1. 了解视图控制器
- 2. Asp.net MVC4,控制器构造
- 3. MVC4多个控制器
- 4. 了解模型 - 视图 - 控制器
- 5. 了解笨基本控制器结构
- 6. 了解$资源和控制器
- 7. 调试(了解)什么是控制器
- 8. Objective-C - 了解视图控制器
- 9. iphone,了解视图控制器,presentModalViewController
- 10. 了解角度控制器Vs指令
- 11. 了解websphere eportal服务器控制台
- 12. 如何从控制器(Content.ReadAsAsync)通过参数API控制器mvc4
- 13. MVC4中的ActionLink无法解决控制器中的操作
- 14. 了解ASP.net mvc4代码
- 15. 了JavaFx控制器
- 16. ASP.NET MVC4 Web API控制器序列化
- 17. MVC4 WebAPI与常规控制器
- 18. MVC4控制器/路由不工作
- 19. iis8上的asp.net mvc4默认控制器
- 20. ASP.NET WebAPI从MVC4控制器失败
- 21. Ajax发布到控制器 - MVC4
- 22. MVC4区域,主控制器和路由
- 23. 在MVC4中设置默认控制器
- 24. 将路径传递给MVC4控制器
- 25. 从控制器ASP.NET MVC4 ArrayList中查看
- 26. 发布枚举到MVC4控制器
- 27. 从MVC4控制器消费Web API?
- 28. 无法删除控制器名称MVC4
- 29. 不同的控制器对asp.net MVC4
- 30. 发送纯文本到控制器mvc4
http://www.codinghorror.com/blog/2008/05/understanding-model-view-controller.html看看这篇文章。它可能会回答你的问题。 –