赞
踩
在本节中,我们将讨论 Controller 是什么以及它在 http://ASP.NET Core MVC 中的作用。
需要大家提前装一个工具,https://www.telerik.com/fiddler
Fiddler 是一个 http 协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的 http 通讯,设置断点,查看所有的“进出”Fiddler 的数据(指 cookie,html,js,css 等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露 http 通讯还提供了一个用户友好的格式。
我们会通过他来演示,如何抓包获取请求。
Microsoft.AspNetCore.Mvc.Controller
http://localhost:12345/home/details
"/home/details”
会映射到 HomeController 中的“Details”公共操作方法。此映射是由我们应用程序中的路由规则定义完成。以下示例返回 JSON 数据。请注意,Details()方法的返回类型设置为 JsonResult,因为我们显式返回 JSON 数据。在这种情况下,Details()方法始终返回 JSON 数据。它不接受内容协商并忽略Accept Header。
- public class HomeController:Controller
- {
- private readonly IStudentRepository _studentRepository;
- public HomeController(IStudentRepository studentRepository)
- {
- _studentRepository = studentRepository;
- }
- public JsonResult Details()
- {
- Student model = _studentRepository.GetStudent(1);
- return Json(model);
-
- }
- }
以下示例遵循内容协商查看请求头中的** Accept Header**,如果它设置为application/xml,则返回 XML 数据。如果 Accept header 设置为application/json,则返回 JSON 数据。
- public class HomeController:Controller
- {
- private readonly IStudentRepository _studentRepository;
- public HomeController(IStudentRepository studentRepository)
- {
- _studentRepository = studentRepository;
- }
- public ObjectResult Details()
- {
- Student model = _studentRepository.GetStudent(1);
- return new ObjectResult(model);
-
- }
- }
请注意:为了能够以 XML 格式返回数据,我们必须通过调用 Startup.cs 文件中的 ConfigureServices()方法中的 AddXmlSerializerFormatters()的方法。
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddMvc().AddXmlSerializerFormatters();
- }
以下示例返回 View。请注意,我们在返回视图时将 ViewResult 设置为 Details 方法的返回类型。
- public class HomeController:Controller
- {
- private readonly IStudentRepository _studentRepository;
- public HomeController(IStudentRepository studentRepository)
- {
- _studentRepository = studentRepository;
- }
- public ViewResult Details()
- {
- Student model = _studentRepository.GetStudent(1);
- return View(model);
- }
- }
此时如果我们运行应用程序并导航到http://localhost:49119/home/details
,我们会收到以下错误。这是因为:我们还没有创建所需的 View 文件。我们将在下一个视频中讨论 MVC 中的视图。
InvalidOperationException: The view 'Details' was not found. The following locations were searched: /Views/Home/Details.cshtml /Views/Shared/Details.cshtml /Pages/Shared/Details.cshtml
欢迎添加个人微信号:Like若所思。
欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。