C# 理解MVC4控制器

C# 理解MVC4控制器,c#,.net,web-applications,asp.net-mvc-4,C#,.net,Web Applications,Asp.net Mvc 4,我对.net框架和整个MVC编程理念还相当陌生。有没有人可以澄清一下,并给我一个基本的解释,控制器是如何使用C与站点交互的?我了解如何用C编写代码,也了解框架的某些方面,但我不知道它们是如何结合在一起的。控制器在某种程度上起到了内部web服务的作用。它们向视图公开服务器端代码,并允许它们调用控制器。就模式而言,大多数人认为控制器应该尽可能薄。如果有繁重的工作或其他业务逻辑,您应该将其抽象到应用程序的另一部分。在我看来,控制器是为视图提供要调用的内容,然后返回数据,无论是text/html、jso

我对.net框架和整个MVC编程理念还相当陌生。有没有人可以澄清一下,并给我一个基本的解释,控制器是如何使用C与站点交互的?我了解如何用C编写代码,也了解框架的某些方面,但我不知道它们是如何结合在一起的。

控制器在某种程度上起到了内部web服务的作用。它们向视图公开服务器端代码,并允许它们调用控制器。就模式而言,大多数人认为控制器应该尽可能薄。如果有繁重的工作或其他业务逻辑,您应该将其抽象到应用程序的另一部分。在我看来,控制器是为视图提供要调用的内容,然后返回数据,无论是text/html、json还是xml

以下是大量直接来源的信息:

特别是对于这个网站,我强烈推荐这个教程。它将使您更清楚地了解模型、视图和控制器是如何相互作用和相互依赖的。
控制器是一个具有方法的类,这些方法称为操作,您可以通过调用这些操作来查看cshtml文件

//This is your controller
public class HomeController : Controller
{
    // This is your action
    public ActionResult Index()
    {
        return View();
    }
}
您可以右键单击索引操作并选择添加视图。。。这将创建一个与该操作关联的新视图

为了访问该视图,您将执行如下操作:localhost/Controller/Action 在这种情况下,它应该是:localhost/Home/Index,其中Home=Controller,Index=Action

你应该读一下


Microsoft在ASP.NET中有一些非常好的

控制器。MVC是一个处理应用程序逻辑以响应请求的对象。它将根据每个请求(例如HTTP请求)创建,并在视图层创建响应之前可用。在此之后,它将成为一个不可用的对象,很快GC将释放其分配的内存,对于另一个请求,必须创建一个新的控制器对象,依此类推

我认为根据这个定义,很明显为什么它必须是轻量级的,以及您必须如何使用它。

模型-是一种表示某种对象(通常是一种对象)的数据结构。它的目的是读取、写入和管理对底层对象的访问,以保持应用程序状态

视图-是用于向用户显示可视界面(可能使用模型)的组件。它可能是一个简单的表,也可能是一个复杂的组合,形成一个完整的网页

控制器-是用户驱动的应用程序逻辑层,位于视图和模型之间。它处理用户交互,加载模型,并向用户发送视图。它根据用户请求确定发送到视图的模型

应用程序的整体文件夹结构可能如下所示

>> Website
     >> Controllers
     >> Models
     >> Views
在C MVC中,每个控制器的名称中都必须有一个后缀controller,它们必须扩展controller类,并且在views文件夹中有一个名称前缀为controller的文件夹,而不包含controller。然后,此文件夹将包含与控制器上的特定操作相关的所有视图

控制器可以包含定义为公共函数的任意数量的操作。默认情况下,从控制器操作返回结果时,视图的名称必须与操作的名称相对应。但是,也可以按名称指定视图。从控制器加载视图时,可以将对象作为模型发送到视图,并在视图中生成其内容

控制器可以加载任何模型,并且不受任何方式的限制

使用操作登录名定义如下的帐户控制器。控制器放置在/Controllers文件夹中的AccountController.cs文件中,此实例中此控制器登录名为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. 如果用户经过身份验证,控制器将重定向到主站点控制器,如果用户未登录,则会显示登录视图,该视图将从指定的LogOnModel加载数据

这实际上只是触及可能的表面。阅读ScottGu的一些优秀文章的在线信息,这些文章将更深入地向您介绍如何使用MVC

// // //


注意:这些文章在2007年为MVC版本1编写时有些过时,但是关于模型、视图和控制器如何交互的概念仍然适用。

请看这篇文章。这也许能回答你的问题。真的要挖掘这个例子。谢谢,解释清楚。令人惊叹的谢谢…: