ASP.NET MVC controller 之间传JS值
在ASP.NET MVC中有东西叫TempData,它的类型是TempDataDictionary,它与ViewData以及ViewBag的不同之处在于
它的内部是使用session来保存信息的,可以理解为暂存的意思。虽然是通过session在保存信息,但它的生命周期是“一次网页的请求”。
利用这一点,我们可以用它在做MVC 中action之间的传值。以下是我传值的一点经验,高手请忽略,呵呵。
假如我们有一张学生管理的页面,其中有学生添加功能,以及学生展示列表。我们是通过一个Action来展示所有信息的,就像是web form一样
那么在controller中会有这样一个action
[HttpGet]
public ActionResult Students()
{
ViewBag.title = "Add Student Page";
ViewBag.jsMessage = TempData["jsMessage"] == null ? "" : TempData["jsMessage"].ToString();//判断并给ViewBag赋值
return View(StudentsPage_Load());
}
要添加学生我们就必须有一个Add action如下:
[HttpPost]
public ActionResult Add(Students student)
{
if (ModelState.IsValid)
{
StudentsBLL bll = new StudentsBLL();
bll.Add(student);
TempData["jsMessage"] = "alert('success');";//利用TempData暂存数据
}
return RedirectToAction("Students");
}
请注意上述代码中的注释部分,它是说添加成功之后,返回原有的页面。也就是说这个Add action并没有对应的view。
那么在添加学生成功之后要在原有的页面中用JS弹出一个添加成功的对话框。可以在Students的View中这样写
<script type="text/javascript">
@Html.Raw(@ViewBag.jsMessage)
</script>
其中@Html.Raw是表示不对输出进行转义。这里有个地方要注意。如果直接在cshtml文件中写
TempData["jsMessage"]则会输出转义后的字符。但如果这样写的话:
@Html.Raw(TempData["jsMessage"])
页面的编译将会报错。所以必须在Students这个Action中加入
ViewBag.jsMessage作为数据的承接。
ASP.NET MVC controller 之间传JS值的更多相关文章
- ASP.NET MVC 文件上传和路径处理
		
ASP.NET MVC 文件上传和路径处理总结 目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传 ...
 - .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)
		
阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...
 - ASP.NET MVC 4 RC的JS/CSS打包压缩功能 (转载)
		
ASP.NET MVC 4 RC的JS/CSS打包压缩功能 打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载 ...
 - 三、ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)
		
阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...
 - ASP.NET MVC文件上传【转】
		
最近用到了文件上传功能,下面给出ASP.NET MVC文件上传的一个简单示例: 一.前端代码 @using (Html.BeginForm("UploadFile", " ...
 - ASP.NET MVC Controller的激活
		
最近抽空看了一下ASP.NET MVC的部分源码,顺带写篇文章做个笔记以便日后查看. 在UrlRoutingModule模块中,将请求处理程序映射到了MvcHandler中,因此,说起Controll ...
 - ASP.NET MVC  Controller向View传值方式总结
		
Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...
 - ASP.NET没有魔法——ASP.NET MVC Controller的实例化与执行
		
上一章节中对路由的注册和匹配过程进行了介绍,知道了MVC的Http请求最终是交由MvcHandler处理的,而其处理过程就是对Controller的创建.执行和释放. 本章将从以下几点进一步对上面提到 ...
 - MVC图片上传、浏览、删除    ASP.NET MVC之文件上传【一】(八)  ASP.NET MVC 图片上传到服务器
		
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
 
随机推荐
- 通过Ajax post Json类型的数据到Controller
			
View function postSimpleData() { $.ajax({ type: "POST", url: "/Service/SimpleData&quo ...
 - IOS 蓝牙相关-基础知识(1)
			
蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...
 - (转)教你实现Winform窗体的四边阴影效果
			
1.首先我们得有这样一张阴影图片. 2.然后分别有两个窗体去实现这个阴影效果. SkinForm - 用于实现阴影的绘制,特性:鼠标可穿透,无法点击,跟随窗体. SkinMain - 主窗体,也是承载 ...
 - 【android异步处理】一个关于android异步处理的文章系列
			
最近读了Android异步处理系列文章索引,感觉这个文章系列写得不错!可以作为参考
 - android-发送短信
 - php修改指定文件的指定内容
			
<?php $origin_str = file_get_contents('路径/文件.txt'); $update_str = str_replace('qwe=0', 'qwe=1', $ ...
 - 演示一个导致ora-01555错误的场景
			
1创建一个undo表空间 2查看当前undo配置 3更该默认undo表空间 4确认更改的配置 5创建一张测试表 6模拟批量操作 7 查询2分钟前的数据 从这里可以到当查询2分钟前的数据时候,系统报出O ...
 - Jquery中animate可以操作css样式属性总结
			
可以用 animate() 方法来操作所有 CSS 属性吗? 是的,几乎可以!不过,需要记住一件重要的事情:当使用 animate()时, 必须使用 Camel 标记法书写所有的属性名,比如,必须使用 ...
 - ZedBoard 引脚约束参考
			
从ISE转换到Vivado时,UCF转XDC的几种方法: (1)软件自动转换 参考网址:Youtube 用ISE->EDK->PlanAhead打开所需转换的工程文件*.xise,并打开b ...
 - javascript中判断对象类型
			
<script type="text/javascript"> //判别一个对象属性在不在某个对象中 //in 是用于查找某个属性是否存在于对象中,它会把对象 //里面 ...