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. SZU-A22

    Problem(A22):Party Judge InfoMemory Limit: 32768KBCase Time Limit: 10000MSTime Limit: 10000MSJudger: ...

  2. BZOJ3711 : [PA2014]Druzyny

    设f[i]为[1,i]分组的最优解,则 f[i]=max(f[j]+1),max(c[j+1],c[j+2],...,c[i-1],c[i])<=i-j<=min(d[j+1],d[j+2 ...

  3. SpringMVC+Spring+MyBatis整合完整版Web实例(附数据)

    最近段时间正在学习Spring MVC和MyBatis的一些知识.自己也在网络上面找了一些例子来练习.但是都不是很完整.所以,今天,自己也抽空写了个完成的关于Spring MVC + Spring + ...

  4. 冒泡排序:一百以内十个随机数放入数组排序并打印<

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. [转]OBOUT ASP.NET HTML Editor - Insert HTML

    本文转自:http://www.obout.com/editor_new/sample_InsertHTML.aspx Example demonstrates how to access HTML ...

  6. 【iCore2模块】VGA模块样板谍照!

    基于 iCore2 双核心板的 VGA模块样机做出来好久了,经过一个多月的努力奋战,该模块的代码已经写完,硬件也测试完毕,性能很好.下面贴几张图: 照片一: 为了节约时间,打样用的是绿色的板子,不过批 ...

  7. int左移32位的行为未定义/Coverity

    int左移32位的行为未定义 Coverity 代码静态安全检测 Is Shifting more than 32 bits of a uint64_t integer on an x86 machi ...

  8. GTX 680 Kepler

    http://www.nvidia.com/object/nvidia-kepler.html http://www.geforce.com/hardware/desktop-gpus/geforce ...

  9. Nginx 笔记与总结(2)信号控制

    开启.关闭.重启 Nginx 官方地址:http://wiki.nginx.org/CommandLine 开启: /usr/local/nginx/sbin/nginx 关闭,用信号控制,语法: k ...

  10. PHP 错误与异常 笔记与总结(16 )自定义异常处理器

    可以使用自定义异常处理器来处理所有未捕获的异常(没有用 try/catch 捕获的异常). set_exception_handler():设置一个用户定义的异常处理函数,当一个未捕获的异常发生时所调 ...