更新时间:2022-09-24 21:27:52
【前言】从今天开始,小静要学习Pro ASP.NET MVC3 Framework这本经典大作了,我是下载的电子版学习的。在这里只是用作学习的记录,便于以后查阅,也为了督促自己坚持下去。不用于任何商业用途。
在webform开发方式里,url是和aspx文件所在的目录相对应的,但在MVC结构中,请求是通过controller进行处理的。在ASP.NET MVC中,controller一般是继承自System.Web.Mvc.Controller的类,通常放在controllers文件夹下。controller中每个public方法称作一个action方法,可以通过特定url来调用action方法。
public class IndexController : Controller
{
public ActionResult Index()
{
return View();//返回与action同名的view结果
}
}
新建controller后,会默认添加一个名为Index的action,其返回类型为ActionResult。返回结果使用return View(),无参数表示返回与action同名的view,也可以传递字符串参数指定view名称。
这个错误不但提示了MVC找不到view,还展示了查找view的顺序。其中第一个index是url中的controller名字(去掉后缀);第二个index是action名称,我们没有指定action名称的时候默认是Index,当然这个也是可以在Global文件中自定义的。
我们可以看到自动添加了文件~/Views/Index/Index.cshtml,其路径格式为~/Views/Controller名称(去掉后缀)/action名称.cshtml, .cshtml后缀表示使用Razor引擎的c# view文件。如果使用的ASPX引擎,那么view文件后缀还是.aspx。
从controller向view传递数据可以使用ViewBag对象,它是Controller从父类继承来的属性,从对象浏览器查看如下:
public dynamic ViewBag { get; }
Member of System.Web.Mvc . ControllerBase
Summary:
Gets the dynamic view data dictionary.
Returns:
The dynamic view data dictionary.
使用实例:
public ActionResult Index()
{
int hour = DateTime.Now.Hour;
ViewBag.hello = string.Format( "{0} ,欢迎来到大米返利网www.damifanli.com" , hour < 12 ? "早上好" : "下午好" );
return View();
}
@{
ViewBag.Title = "首页";
}
至此,我们创建了第一个MVC3项目,对于MVC3项目的基本结构也有了初步了解。
本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/archive/2012/10/09/2716315.html,如需转载请自行联系原作者