不能说是庆幸吧,正赶上公司要开发一个小小的MVC项目,于是这样任务就只有我自己承担,在这个项目中我才彻底感觉到自己之前有关MVC知识的无知,以为接触了皮毛就感觉能做项目,只要有心动脑思考就能完成一个完整的小项目,其实并不是这样的,还是踏踏实实的实战才是最有效的吧,之前也说要好好学习那,但是从开始北漂似乎就没有安静下来学习的吧,总是感觉有无数的事情想要去做,却总是忙不完,但是去想一下,其实并没有什么一定要做的事情要做,不是因为不想学习,是需要一颗稳定的心吧,这样机会就来啦,入职的工作已经办完,一切都稳定了吧,以后每天可能重复着同样的节律,上班,敲代码,下班。。。就是这样的生活节奏让我有了跨越三个月重新拿起我的学习来填满我的生活。好啦,想必好多友友都是大神啦,但是我还是有我需要谨记的东东那,还是总结一些我要记忆的吧。
一.controller向view传参
<1>使用ViewDate传参
ViewData["Name"] = Request.Form["Name"]; @Html.Encode(ViewData["Name"])
其实上面的ViewDate就是获取拿到的值设置一个键,然后在view中重新拿到这个键即可,这样是最简单的一种吧,其实在这里说ViewDate传值的问题,就想起来我在遇到一个情况,是之前不太清楚而且不敢去尝试的问题吧,就是controller中的其中一个Action获取到一个值,但是想当前controller其他的Action中用应该怎么办?我在项目中就简单的创建了session,虽然这不是什么好方法,但是感觉用起来还是蛮方便的哦,嘿嘿,如下所示:
model.Name = Request.Form["Name"]; Session["Name"] = model.Name;
这样是我们拿到值然后创建一个session,接下来我们就去拿session的值即可。
另外想说的是我们的ViewDate不仅仅是传一个string类型的值到View上面,它甚至可以传一个List集合到View中,如下所示:
List<Student> stuModel = stuBll.GetAllStudentById(id); ViewData["stuModel"] = stuModel;
上面是我们在controller中创建传值,接下来简单的总结下在view中怎么拿值:
@{List<Student> stuModel = ViewData["stuModel"] as List<Student>;} @if (stuModel.Count > 0) { foreach (var item in stuModel) { <span class="stuId">@item.Name</span> } }
就这样我们就可以在view中拿到一个我们想遍历的集合啦,其实我们为什么不返回model实体类那,这就是为什么要使用ViewDate返回集合的原因吧,在一个View中只能使用一个model,所以在不得已时间我们只能使用其他的方法啦,嘿嘿。
另外简单的总结一个List集合中如果存放一个数组我们应该如何遍历?
@{List<string[]> stuModel = ViewData["stuModel"] as List<string[]>;} @if (stuModel.Count > 0) { foreach (string[] stu in stuModel) { for (int i = 0; i < stu.Length; i++) { <span class="Id" href="#">›@stu[1]</span> <span class="Name" hidden>›@stu[3]</span> <span class="Gender" hidden>›@stu[4]</span> } } }
上面总结List中的数组遍历主要是因为前几天去接触工作流的项目啦,一直没用到这个的原因吧,嘿嘿,还真是容易忘记,在这里记得遍历时间加上@啦。
二.controller中返回model应该怎么引用怎么使用
只学习不练习就是一个大坑,其实没有练习就是什么也没学习到啦,直到我开始做项目我才知道我竟然引用model不知道啦,那时间很是意外啊。
首先我们在返回model时间,在controller中需要返回model,然后在view中引用并遍历数据,controller中的示例即如下所示:
public ActionResult Index() { List<Student> stuModel = adBll.GetAllstuModel(id); return View(models); }
简单的总结下view中我们应该怎么写的啦。
@using Demo.Model; @model List<Student> foreach (var item in Model) { <td>@Html.DisplayFor(modelItem => item.Name)</td> }
好啦,今天就暂时总结到这里啦,嘿嘿,要过端午节啦,亲们都好好玩哈,祝亲们端午节快乐,一见粽情哦,0.0