以前一直做WinForm桌面应用开发,所以对MVC 也是这几天的了解。
传统三层是架构,MVC 是展示模式, MVC相当于UI层,只是把UI层再次进行了分解。
我用的是一个传统的三层架构+MVC2 来做的一个增删改 的示例。其中传统三层为了方便(懒省事),把其中的BLL层搞掉了。具体看下面项目的目录结构图:
简单说下里面要用到的几个文件:DAL、DataAcc、Model这几个都是代码生成器生成的,Controllers控制器、Views视图页面。在这个项目中传统三层的M和MVC中的M,我合并到一起都放到了传统三层的M中了。
介绍完文件,再说下这几个文件的调用关系 Views ->Controllers ->DAL ->DataAcc ->数据库 其中我理解的 Model在这里面是一个数据载体, 所以没有放到关系里面,哪里需要哪里调。
声明:以下展示的页面没有做任何美化操作,只看展示结果。
开始贴代码吧:
首页是控制器中的 初始化页面Index
public class EmpInfoController : Controller
{
WLsys.DAL.Fm_EmpInfo dalemp = new WLsys.DAL.Fm_EmpInfo();
WLsys.Model.Fm_EmpInfo mdlemp = new WLsys.Model.Fm_EmpInfo();
public ActionResult Index()
{
//获取要显示的信息
List < WLsys.Model.Fm_EmpInfo > data= dalemp.GetModel();
return View(data);
}
然后鼠标选中Index()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可
点击添加即可在Views文件夹中生成Index.aspx
在 Index.aspx 把第一行替换为下面的内容
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<WLsys.Model.Fm_EmpInfo>>" %>
开发环境运行起来 即可看到如下效果
在该页面中包含【新增】、【编辑】、【删除】、【明细】的功能在后面的章节中再详细记录
最后贴出DAL中GetModel()方法中的代码:
/// <summary>
/// 得到一个对象实体
/// </summary>
public List<WLsys.Model.Fm_EmpInfo> GetModel()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select ");
strSql.Append(" ID,DeptNum,EmpName,EmpSpell,EmpSex,EmpDuty,EmpBirth,BirthNote,EmpTel,EmpEmail,EmpAddress,EmpEduc,EmpNation,EmpCard,EmpSalary,EmpMark,OPID,OPT,EpmPhoto,DataIn ");
strSql.Append(" from Fm_EmpInfo ");
SqlDataReader sdr = DbHelperSQL.ExecuteReader(strSql.ToString());
List<WLsys.Model.Fm_EmpInfo> empinfo = new List<WLsys.Model.Fm_EmpInfo>();
try
{
while (sdr.Read())
{
WLsys.Model.Fm_EmpInfo fem = new WLsys.Model.Fm_EmpInfo();
fem.BirthNote = sdr["BirthNote"].ToString();
fem.DataIn = sdr["DataIn"].ToString();
fem.DeptNum = sdr["DeptNum"].ToString();
fem.EmpAddress = sdr["EmpAddress"].ToString();
fem.EmpBirth = sdr["EmpBirth"].ToString();
fem.EmpCard = sdr["EmpCard"].ToString();
fem.EmpDuty = sdr["EmpDuty"].ToString();
fem.EmpEduc = sdr["EmpEduc"].ToString();
fem.EmpEmail = sdr["EmpEmail"].ToString();
fem.EmpMark = sdr["EmpMark"].ToString();
fem.EmpName = sdr["EmpName"].ToString();
fem.EmpNation = sdr["EmpNation"].ToString();
fem.EmpSalary = decimal.Parse(sdr["EmpSalary"].ToString());
fem.EmpSex = sdr["EmpSex"].ToString();
fem.EmpSpell = sdr["EmpSpell"].ToString();
fem.EmpTel = sdr["EmpTel"].ToString();
fem.EpmPhoto = sdr["EpmPhoto"].ToString();
fem.ID =int.Parse ( sdr["ID"].ToString());
empinfo.Add(fem);
}
sdr.Close();
return empinfo;
}
finally
{
sdr.Close();
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。