我看过生命周期的流程图,但他们似乎从来没有回答过这个问题,或者我只是不明白。
因此,如果用户点击注册页面是:
- 路由引擎选择控制器。
- 控制器检查应该显示哪个视图,检查它是否是强类型的,如果是,则实例化正确的模型。
- 调用视图,传入空模型。
我也对填写并提交表单时会发生什么感兴趣。
我不是在寻找任何超级技术,只是一些概念性的东西......
我看过生命周期的流程图,但他们似乎从来没有回答过这个问题,或者我只是不明白。
因此,如果用户点击注册页面是:
我也对填写并提交表单时会发生什么感兴趣。
我不是在寻找任何超级技术,只是一些概念性的东西......
无论用户操作(点击链接、输入 URL、提交表单),MVC 应用程序的基本流程如下:
当然,这里省略了很多细节,但这是大意。
更新:关于模型的一些话。模型用于将数据从控制器传递到视图。主要有两种方法:
使用 ViewData 集合 - 基本上是一个常规的键值字典。在 Controller 中,它充满了数据:
ViewData["SomeKey"] = "someValue"; //not only string, any object can be here
return View();
在 View 中,值是通过键检索的:
<%= ViewData["SomeKey"] %>
强类型视图。将创建一个包含必要数据的模型类。用这个类指定View是强类型的,当Action返回一个View对象时,它会传递这个类的一个实例作为参数。这是一些代码示例:
模型:
public class SomeModel
{
public string SomeKey { get; set; }
}
控制器:
SomeModel model = new SomeModel();
model.SomeKey = "someValue";
return View(model);
看法:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<SomeModel>" %>
...
<%= Model.SomeKey %>