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="" border="" cellspacing="" cellpadding="" id="form_login">
<tr>
<td width="" height="" align="right" class="white">用户名:</td>
<td width="" height="">
<input type="text" class="input_text" name="UserName" id="UserName" /> @Html.ValidationMessageFor(m => m.UserName)
</td>
<td height="">&nbsp;</td>
</tr>

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

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

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

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

    1.引子 最近学用director.js,那是相当的简单易学易使用.不过开始学的时候,搜搜过后,却没有发现相关的中文教程.于是决定硬啃E文,翻译备用的同时也当是给自己上课并加深对它的理解. direc ...

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

    [Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...

  3. MVC ValidationAttribute 服务器端自定义验证

    MVC ValidationAttribute 服务器端自定义验证 客户端验证 上文只说了客户端的自定义验证,这样对于用户的输入还是不够可靠,用户完全可以绕过我们定义的客户端验证.所以仅有客户端的验证 ...

  4. MVC 中Controller返回值类型ActionResult

    下面列举Asp.net MVC中Controller中的ActionResult返回类型 1.返回ViewResult视图结果,将视图呈现给网页 public ActionResult About() ...

  5. ASP.NET误人子弟教程:在MVC下如何返回图片

    这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...

  6. ASP.NET MVC下如何返回图片

    方式一: 首先,我们应当从控制器入手,控制器一般不都是return View的吗?那怎么返回图片? 当然,Controller类也没有return Image 的,上次我们的例子是返回JSON,其实我 ...

  7. C# MVC中直接执行Js

    .NET MVC里如何在服务器端执行JS: 三种解决方案: 1.直接返回JavaScript. public ActionResult XXXAction1() {      return JavaS ...

  8. dotNET开发之MVC中Controller返回值类型ActionResult方法总结

    1.返回ViewResult视图结果,将视图呈现给网页 2. 返回PartialViewResult部分视图结果,主要用于返回部分视图内容 3. 返回ContentResult用户定义的内容类型 4. ...

  9. asp.net mvc处理css和js版本问题

    当服务的修改了js和css内容后,发布到IIS服务器上,总是导致客户端内容显示不正确,原因是客户端存在缓存,还是加载的原来的js和css问题. 在css或js后面添加版本号,例如: <scrip ...

随机推荐

  1. python 代码片段15

    #coding=utf-8 ''' 如果运行时发生异常的话,解释器会查找相应的处理函数.要是在当前函数里没有 找到的话,它会将异常传递给上层的调用函数,看看那里能不能处理.如果在在最 外层还没有找到的 ...

  2. Guaranteeing message processing —— 可靠的消息处理

    Storm's reliability API: how Storm guarantees that every message coming off a spout will be fully pr ...

  3. POJ 1947 (树形DP+背包)

    题目链接: http://poj.org/problem?id=1947 题目大意:树中各点都由一条边连接.问要弄出个含有m个点的(子)树,至少需要截去多少条边. 解题思路: 设dp[i][j]为i总 ...

  4. cocos2d 中判断CGPoint或者CGSize是否相等

    cocos2d 中判断CGPoint是否相等 调用CGPointEqualToPoint(point1, point2) 判断CGSize是否相等 调用CGSizeEqualToSize(size1, ...

  5. 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  6. 移动端JD首页H5页面

    1:理解View :<meta name="viewport" content="width=device-width,initial-scale=1.0" ...

  7. MatLab 组件大全

    MATLAB                                                                    矩阵实验室 7.0.1 Simulink       ...

  8. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"问题解决

    安装一个软件时,遇到这个问题sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 上网 ...

  9. 清除行内元素之间HTML空白的几种解决方案

    行内块(inline-block)是非常有用的,特别是想要不用'block'和'float'来控制这些行内元素的margin,padding之时. 问题来了,HTML源码中行内元素之间的空白有时候显示 ...

  10. ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)

    一,mvc前后台验证 自定义属性标签MyRegularExpression using System; using System.Collections.Generic; using System.C ...