我们的ITOO进行了一大部分了,整体上来说还是比较顺利的。昨天进行了一次验收,大体上来说,我们新生这块还是可以的。不仅仅进行了学术上的交流,还进行了需求上的更新。也正是由于这一次,我有了解到了一个新的需求,就是在我们界面转换之间的返回上,添加参数,使当前页上的数据还是跳转之前的样子。(前提不使用浏览器上的返回键,自己写一个返回按钮)

人 怕的不仅仅是不了解知识,更害怕的是没有想法!

了解到这个需求,我今天一上午都在想办法,试验了各种方法,结果用了一个最最简单的。下面就由我向大家分享一下:

1、ViewBag:

controller代码:

<span style="font-size:18px;">#region DepReport()-获得后台数据-李卫中--2016年1月12日10:53:38
/// <summary>
/// DepReport()-获得后台数据
/// </summary>
/// <param name="strlike">学院名称</param>
/// <returns></returns>
public JsonResult DepReportList(string strlike)
{ int pageSize = Request["rows"] == null ? 10 : int.Parse(Request["rows"]);
int pageIndex = Request["page"] == null ? 1 : int.Parse(Request["page"]);
int total;
<span style="color:#ff0000;"><strong>Session["DepName"] = strlike;</strong></span> List<FreshDepartmentViewModel> lsdep; if (strlike == "" || strlike == null || strlike == "请输入学院名称")
{
lsdep = depservice.FreshDepReport(pageSize, pageIndex, out total);
}
else
{
lsdep = depservice.FuzzyFreshDepReport(pageSize, pageIndex, out total, strlike);
} var data = new
{
total,
rows = lsdep
};
return Json(data, JsonRequestBehavior.AllowGet);
} #endregion</span>

<span style="font-size:18px;">public ActionResult Index()
{
if (Session["DepName"] != null)
{
<span style="color:#ff0000;"><strong>ViewBag.txtSearch = Session["DepName"];</strong></span>
}
else
{
ViewBag.txtSearch = "";
}
return View();
}</span>

View展示:

<span style="font-size:18px;"><input id="txtSearch" <strong><span style="color:#ff0000;">value="@ViewBag.txtSearch"</span></strong> onkeyup="AutoSuggest(this, event, document.getElementById('urllink').value);"
onkeypress="if(keyCode==13) doSearch();" placeholder="请输入学院名称" @*value="" class="gray" onclick=" if (this.value == '请输入学院名称') { this.value = ''; this.className = 'black' }" onblur=" if (this.value == '') { this.value = '请输入学院名称'; this.className = 'gray' }" *@style="width: 320px; height: 20px; margin-bottom: 30px;" autocomplete="off" onkeydown=" if (event.keyCode == 13) { doSearch(); }" /></span>

就这样,我们先将当前页查询的信息存在Session中,然后再加载的时候用ViewBag(ViewBag
.DepName)来接收它,进行判断,剩下的只需要我们在前台中有一个对应的@ViewBag.DepName来接收从controller赋过来的值就可以了。然后,一切就都顺理成章了。

2、ViewData


只是其中的一种方法,另一种方法就是viewdata,相信大家用的比较广泛,类似于viewbag,我们要再前台用相应的@ViewData[ ];

Controller:

<span style="font-size:18px;">public ActionResult Index()
{
<span style="color:#ff0000;"><strong>ViewData["depname"] = "数学与信息科学学院";</strong></span>
return View();
}</span>

View

<span style="font-size:18px;"><input id="urllink" type="hidden" value="/FreshMajorReport/ProcessRequest?<strong><span style="color:#ff0000;">depname=@ViewData["depname"]</span></strong>" /></span>



总结:

不怕不知道,就怕不知道。通过这次学习,更加了解了viewbag和viewdata的区别和作用,对于这两种用于controller向view传值的方法,我们应该了解它的原理。

【项目经验】之——Controller向View传值的更多相关文章

  1. 总结Controller向View传值的方式(转)

    总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Model对象 向强类型页面传传 ...

  2. ASP.NET MVC Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  3. MVC:Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  4. ASP.NET MVC Controller向View传值的几种方式

    上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...

  5. Controller向View传值方式总结

    http://www.cnblogs.com/guohu/p/4377974.html 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag Vi ...

  6. MVC Controller 与 View 传值

    Controller 到 View 1 强类型 控制器 // GET: /Test/ public ActionResult Index() { DateTime date = DateTime.No ...

  7. MVC Controller向View传值(ViewData与ViewBag)

    近期在开发项目中,使用的是ASP.NET MVC因为之前并没有接触,对于它的传值方式有些陌生,在这里进行初步总结积累学习. 一:使用 ViewData使用: public ActionResult I ...

  8. MVC教程四:Controller向View传值的几种方式

    一.通过ViewData传值 MVC从开始版本就一直支持使用ViewData将Controller里面的数据传递到View.ViewData定义如下: 从上面的截图中可以看出,ViewData里面存的 ...

  9. ASP.NET MVC 四种Controller向View传值方法

    控制器: // Get: Data public ActionResult Index() { //ViewData 方式 ViewData["UserName"] = " ...

随机推荐

  1. MongoDB 分片的原理、搭建、应用

    一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...

  2. 服务器×××上的MSDTC不可用解决办法

    MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和M ...

  3. [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

  4. HDU 1000 & HDU1001 & 字符串连接

    A + B Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  5. 【leetcode】Decode Ways(medium)

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  6. Jquery如何判断Radiobutton是否选中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Struts2自定义拦截器

    1. 需求 自定义拦截器实现,用户登录的访问控制. 2. 定义拦截器类 public class LoginInterceptor extends AbstractInterceptor { @Ove ...

  8. [Android Pro] How to get recent tasks on Android “L”?

    reference : http://stackoverflow.com/questions/24590533/how-to-get-recent-tasks-on-android-l/2688546 ...

  9. October 8th 2016 Week 41st Saturday

    When ambition ends, happiness begins. 野心消亡之日,正是快乐破茧之时. If I don't have the wish to be a useful man, ...

  10. python基础——使用@property

    python基础——使用@property 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9 ...