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?类型,再控制为短日期格式,问题解决。

浙公网安备 33010602011771号