我们的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. 6.js模式-中介者模式

    1. 中介者模式 所有对象通过中介者进行通信 var playDirector = (function(){ var players = []; var options = {}; options.a ...

  2. FFmpeg 官方 20160227 之后 追加 libmfx 无法在 xp 上运行的解决方法

    修改三个地方 _wfopen_s _wfopen strncpy_s strncpy swscanf_s swscanf 下载 fixffmpeg.7z, fixff.cmd FixFFmpeg.ex ...

  3. UIButton修改文字大小问题

    一.问题描述 通过UIButton对象font属性设置文字大小,却发现该属性在2.0.3.0就已经被废弃,ios不建议使用. 图1-1:点出UIButton对象的font属性提示被废弃 图1-2:UI ...

  4. sql server 取日期

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE( ...

  5. 【leetcode】Binary Tree Maximum Path Sum (medium)

    Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. ...

  6. MongoDB csv文件导入导出

    1.导出到csv文件: 2.从csv导入: 数据经过csv导出导入,有一个非常隐蔽的问题,编写代码时需要注意: 先导入一条数据: 其中Price是double类型: 然后我把该条记录导出到Demo.c ...

  7. ReactNative环境配置

    参考链接 Windows系统安装React Native环境 windows下React Native Android 环境搭建 在Windows下搭建React Native Android开发环境 ...

  8. VCC、VDD、VSS、 VEE 和VPP的区别

    在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压: VDD:D=device 表示器件的意思, ...

  9. 公众号开发——测试工具【ngrok】

    工具下载:ngrok 目录清单: ngrok.exe ngrok.cfg run.bat 点击bat启动. 可修改域名,右键bat文件修改. 成功效果图: 注:80端口被占用了怎么办?    ——   ...

  10. Ext Js【Hello World】 ——4.1 beta 1

    准备:vs+ExtJs4.1Beta1 ExtJS 4.1  xiazai_ https://yunpan.cn/cqv6bdBwtRjAj (提取码:2733) 引用,cs文件,js主入口,zh—c ...