MVC从服务器端返回js到客户端的方法(总结)

1、利用ViewBag,从服务器端创建一个显示js开关的ViewBag,然后到View中去做判断。

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">&nbsp;</td>
  </tr>

这种方式限制了必须使用ajax方式提交表单。

还有其他的比如采用PartialView写脚本的方式,都大同小异。

时间: 2024-10-11 06:18:09

MVC从服务器端返回js到客户端的方法(总结)的相关文章

director.js:客户端的路由---简明中文教程

1.引子 最近学用director.js,那是相当的简单易学易使用.不过开始学的时候,搜搜过后,却没有发现相关的中文教程.于是决定硬啃E文,翻译备用的同时也当是给自己上课并加深对它的理解. director.js 的官方地址请点击 这里 查看,本教程内容也主要来自于这里. 2.director.js是什么 director.js 按照我的理解就是客户端的路由注册/解析器,它在不刷新页面的情况下,利用“#”符号组织不同的URL路径,并根据不同的URL路径来匹配不同的回调方法.通俗点说就是什么样的路

Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 如: [csharp] view pl

android-async-http开源项目对服务器端返回JSON数据的处理

一.在JavaEE项目中搭建环境 1. 导入相关jar包 2. 搭建相关的包和类 3.类中的方法简单实现 User: 声明以下属性,并实现无参构造器和有参构造器,以及各自的get和set方法 UserDao: UserDaoImpl: JsonServlet: <span style="white-space:pre"> </span>protected void doGet(HttpServletRequest request, HttpServletResp

ASP.NET MVC – 关于Action返回结果类型的事儿(上)

原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一.         ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1.       ActionResult(base) 2.       ContentResult 3.       EmptyResult 4.       HttpUnau

Android应用开发-------------WebView(一)之WebView与服务器端的Js交互

最近公司再添加功能的时候,有一部分功能是用的html,在一个浏览器或webview中展示出html即可.当然在这里我们当然用webview控件喽 WebApp的好处: 在应用里嵌套web的好处有这么几点,1,跨平台,不仅可以在Android上运行,也可以在ios上运行,而且样式什么的绝对统一,因为都是加载的html,用的都是同一套html 2,修改灵活,容易更新版本.例如大家常看到的app里面的广告页,大多是嵌套的html,这样只要后台替换一下页面的内容,手机端就会改变展现内容,跟新版本也是如此

JS学习十四天----服务器端执行JS代码

服务器端执行JS代码 话说,当今不在客户端使用JS代码才是稀罕事.由于web应用的体验越来越丰富,客户端用JS实现的逻辑也越来越多,这造成的结果就是某些几乎一致的逻辑需要在客户端和服务端各实现一遍,大牛们当然不甘心啊!幸运的是,我们可以在服务器端执行JS代码,谁让JS抱了一根大腿呢... 例如,如今在客户端使用JS进行验证已经是个标准,他可以有效避免用户在正常情况下提交错误的数据,增强用户体验.当然,服务器端的验证也是必不可少的,因为这才是安全性的体现.有些解决方案,,会在服务器端提供优先的验证

spring MVC找不到JS的问题

spring mvc 静态资源 404问题 在web.xml配置servlet-mapping的时候,如果url-pattern设置为“/” (如下),很多人都会遇到导入js,css,图片等静态资源出现Firefox调试窗口会报出的404错误,而你的确也不能访问那些资源 <servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern&g

MVC web api 返回JSON的几种方式,JSON时间去T的几种方式。

MVC web api 返回JSON的几种方式 1.在WebApiConfig的Register中加入以下代码 1 config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 2.在WebApiConfig的Register中加入以下代码 1 config.Formatters.Remove(config.Formatters.XmlFormatter);

浏览器端对服务器端返回的日期的处理方式

用javascript的 Date 函数来处理:     var date=jQuery.parseJSON(data)将返回的数据解析成为jQuery对象.     var start = new Date(date);     var year = start.getFullYear();     var month = start.getMonth();     var day = start.getDate(); 浏览器端对服务器端返回的日期的处理方式,布布扣,bubuko.com