MVC3学习笔记(一)

最近给人做了一个很小的web程序,某部门的一些业务信息录入和浏览、统计之类的。我在之前只是用ASP.net做过几个页面,对web编程实在不熟,所以干脆选择了似乎比较流行的MVC3进行开发。到今天也将近三个星期了,中间遇到不少问题。这些问题可能也是别的初学者会遇到的,就把这个过程记录下来,希望有用。对了,我是参照着网上找的一个《ASP.MVC3.0中文版教程》的文档开始做的。按照该教程,完成增删改的一个框架基本没有什么问题。

下面遇到的是如何使用下拉列表。

比如我的主表是TCases,其中有字段AreaID是和表TAreas(字段:ID,Name)中的ID关联,在新建或修改主表记录时要给Area提供下拉列表以选择,此时的实现方法是:

Controller对应的Action中在return View之前加入

ViewBag.Area = new SelectList(db.TAreas, "ID", "Name");

在对应的View中加入

@Html.DropDownListFor(model => model.AreaID, ViewBag.Area as IEnumerable<SelectListItem>)

@Html.ValidationMessageFor(model => model.AreaID)

需要注意的2点:

1、ViewBag中变量的名称不要和字段名重复,比如上面就不要用ViewBag.AreaID,似乎这样会导致不会自动指定默认值。因为这个问题出现在初期,相距已经有些时日,不知道根本原因是否如此,反正当时是通过这样的修改解决了问题。

2、有时候提示如下之类错误:

具有键“AreaID”的 ViewData 项属于类型“System.Int32”,但它必须属于类型“IEnumerable<SelectListItem>”。

但实际上问题并不是在这个字段上。我当时是有一个字段是DateTime类型,长短日期不一致,还有有时是空等,这个是问题的原因所在。后来是把Model中DateTime类型改为DateTime?类型,再控制为短日期格式,问题解决。

posted @ 2012-10-28 11:34  左加明  Views(404)  Comments(0)    收藏  举报