MVC从服务器端返回js到客户端的方法(总结)
2015-10-11 12:55
531 查看
1、利用ViewBag,从服务器端创建一个显示js开关的ViewBag,然后到View中去做判断。
Controller端
View端
个人感觉这种方式比较灵活,可以控制脚本在页面中的任何位置。
2、直接在Controller中返回一个内容为脚本代码的Content
这种方法因为直接输出内容,所以不加后续处理(history.back或location)的话,页面会显示空白;
3、在Controller中返回一个Javascript,使用这种方式的前提需要采用AJAX的方式,否则脚本无效。
Controller端
View端部分代码
这种方式限制了必须使用ajax方式提交表单。
还有其他的比如采用PartialView写脚本的方式,都大同小异。
Controller端
[HttpPost] public ActionResult Index(hk_Admin model) { if (model.UserName != "xiaojie") { ModelState.AddModelError("UserName", "用户名不正确。"); } if (!ModelState.IsValid) { ViewBag.msg = "error"; } return View(); }
View端
@{ if(@ViewBag.msg == "error") { <script type="text/javascript"> alert("请输入用户名"); </script> } } </body> </html>
个人感觉这种方式比较灵活,可以控制脚本在页面中的任何位置。
2、直接在Controller中返回一个内容为脚本代码的Content
[HttpPost] public ActionResult Index(hk_Admin model) { if (model.UserName != "xiaojie") { ModelState.AddModelError("UserName", "用户名不正确。"); } if (!ModelState.IsValid) { return Content("<script >alert('请输入用户名');window.history.back(-1);</script >"); } return View(); }
这种方法因为直接输出内容,所以不加后续处理(history.back或location)的话,页面会显示空白;
3、在Controller中返回一个Javascript,使用这种方式的前提需要采用AJAX的方式,否则脚本无效。
Controller端
[HttpPost] public ActionResult Index(hk_Admin model) { if (model.UserName != "xiaojie") { ModelState.AddModelError("UserName", "用户名不正确。"); } if (!ModelState.IsValid) { return JavaScript("请输入用户名"); } return View(); }
View端部分代码
@using (Ajax.BeginForm(new AjaxOptions())) { <div id="main"> <div><img src="@baseUrl/login_top.gif" /></div> <div id="login_center"> <table width="253" border="0" cellspacing="0" cellpadding="0" id="form_login"> <tr> <td width="68" height="25" align="right" class="white">用户名:</td> <td width="120" height="25"> <input type="text" class="input_text" name="UserName" id="UserName" /> @Html.ValidationMessageFor(m => m.UserName) </td> <td height="25"> </td> </tr>
这种方式限制了必须使用ajax方式提交表单。
还有其他的比如采用PartialView写脚本的方式,都大同小异。
相关文章推荐
- JS实现Ajax,Josn数据的序列化和反序列化---例: 省市区联动(包含get,post)
- js模块化
- JavaScript三在弹出的对话框中
- 解决js小数求和出现多位小数问题
- js性能优化
- 使用Jsoup解析HTML和文档
- 分享js打印 网页
- 分享js打印 网页
- javascript函数式编程程序员的工具集
- JavaScript设计模式--单例模式
- jstl标签的使用
- json使用
- jsp的el表达式使用
- JS实时时间显示
- javascript基础教程第8版---第5章窗口与框架---学习笔记
- 引入外部js文件时遇到的问题
- 深入探讨javascript函数式编程
- js类的声明和对象的创建
- Javascript函数式编程语言
- 解析Json数据并通过Fragment填充到ViewPager中