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="" 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=""> </td>
</tr>
这种方式限制了必须使用ajax方式提交表单。
还有其他的比如采用PartialView写脚本的方式,都大同小异。
MVC从服务器端返回js到客户端的方法(总结)的更多相关文章
- director.js:客户端的路由---简明中文教程
1.引子 最近学用director.js,那是相当的简单易学易使用.不过开始学的时候,搜搜过后,却没有发现相关的中文教程.于是决定硬啃E文,翻译备用的同时也当是给自己上课并加深对它的理解. direc ...
- Asp.net MVC 中Controller返回值类型ActionResult
[Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...
- MVC ValidationAttribute 服务器端自定义验证
MVC ValidationAttribute 服务器端自定义验证 客户端验证 上文只说了客户端的自定义验证,这样对于用户的输入还是不够可靠,用户完全可以绕过我们定义的客户端验证.所以仅有客户端的验证 ...
- MVC 中Controller返回值类型ActionResult
下面列举Asp.net MVC中Controller中的ActionResult返回类型 1.返回ViewResult视图结果,将视图呈现给网页 public ActionResult About() ...
- ASP.NET误人子弟教程:在MVC下如何返回图片
这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...
- ASP.NET MVC下如何返回图片
方式一: 首先,我们应当从控制器入手,控制器一般不都是return View的吗?那怎么返回图片? 当然,Controller类也没有return Image 的,上次我们的例子是返回JSON,其实我 ...
- C# MVC中直接执行Js
.NET MVC里如何在服务器端执行JS: 三种解决方案: 1.直接返回JavaScript. public ActionResult XXXAction1() { return JavaS ...
- dotNET开发之MVC中Controller返回值类型ActionResult方法总结
1.返回ViewResult视图结果,将视图呈现给网页 2. 返回PartialViewResult部分视图结果,主要用于返回部分视图内容 3. 返回ContentResult用户定义的内容类型 4. ...
- asp.net mvc处理css和js版本问题
当服务的修改了js和css内容后,发布到IIS服务器上,总是导致客户端内容显示不正确,原因是客户端存在缓存,还是加载的原来的js和css问题. 在css或js后面添加版本号,例如: <scrip ...
随机推荐
- python 代码片段15
#coding=utf-8 ''' 如果运行时发生异常的话,解释器会查找相应的处理函数.要是在当前函数里没有 找到的话,它会将异常传递给上层的调用函数,看看那里能不能处理.如果在在最 外层还没有找到的 ...
- Guaranteeing message processing —— 可靠的消息处理
Storm's reliability API: how Storm guarantees that every message coming off a spout will be fully pr ...
- POJ 1947 (树形DP+背包)
题目链接: http://poj.org/problem?id=1947 题目大意:树中各点都由一条边连接.问要弄出个含有m个点的(子)树,至少需要截去多少条边. 解题思路: 设dp[i][j]为i总 ...
- cocos2d 中判断CGPoint或者CGSize是否相等
cocos2d 中判断CGPoint是否相等 调用CGPointEqualToPoint(point1, point2) 判断CGSize是否相等 调用CGSizeEqualToSize(size1, ...
- 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- 移动端JD首页H5页面
1:理解View :<meta name="viewport" content="width=device-width,initial-scale=1.0" ...
- MatLab 组件大全
MATLAB 矩阵实验室 7.0.1 Simulink ...
- sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"问题解决
安装一个软件时,遇到这个问题sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 上网 ...
- 清除行内元素之间HTML空白的几种解决方案
行内块(inline-block)是非常有用的,特别是想要不用'block'和'float'来控制这些行内元素的margin,padding之时. 问题来了,HTML源码中行内元素之间的空白有时候显示 ...
- ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)
一,mvc前后台验证 自定义属性标签MyRegularExpression using System; using System.Collections.Generic; using System.C ...