gpt4 book ai didi

c# - 了解 MVC4 Controller

转载 作者:太空狗 更新时间:2023-10-29 22:23:11 26 4
gpt4 key购买 nike

我对 .net Framework 和整个 MVC 编程哲学还很陌生。有人可以澄清并给我一个基本的解释,说明 Controller 如何使用 C# 与站点交互吗?我了解如何使用 C# 进行编码,也了解该框架的某些方面,但我看不出它们是如何联系在一起的。

最佳答案

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

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

Controller - 用户驱动的应用程序逻辑层,位于 View 和模型之间。它处理用户交互、加载模型并向用户发送 View 。它根据用户请求确定将什么模型发送到 View 。

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

>> Website
>> Controllers
>> Models
>> Views

在 C# MVC 中,每个 Controller 的名称中都必须有后缀 Controller,它们必须扩展 Controller 类,并且有一个名称前缀的文件夹(没有 Controller) View 文件夹。此文件夹将包含与 Controller 上的特定操作相关的所有 View 。

Controller 可以包含任意数量的定义为公共(public)函数的 Action 。默认情况下,当从 Controller 操作返回结果时, View 的名称必须与操作的名称相对应。但是,您也可以按名称指定 View 。从 Controller 加载 View 时,可以将对象作为模型发送到 View ,并在那里生成它的内容。

Controller 可以加载任何模型,不受任何限制。

Account Controller 定义如下,带有操作 Login。 Controller 放置在 /Controllers 文件夹中的 AccountController.cs 文件中,该 Controller 的任何 View (Login 在本例中为文件名Login.cshtml) 放在/Views/Account 文件夹中。

注意:命名约定必须正确,因为名称用于 Controller 和 View 之间以链接数据。

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 访问。如果用户通过身份验证, Controller 将重定向到主站点 Controller ,如果用户未登录,则会向他们显示 Login View ,该 View 从 LogOnModel 加载数据指定。

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

ASP.NET MVC Framework Overview

ASP.NET MVC Framework How To - Part 1//Part 2//Part 3//Part 4

注意:这些文章是在 2007 年为 MVC 版本 1 编写的,因此有些过时,但模型、 View 和 Controller 如何交互的概念仍然适用。

关于c# - 了解 MVC4 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com