asp.net的MVC框架中,启用了一个很好的视图引擎,Razor,用了用,感觉还不错。
近期遇到一个问题,就是后台如何调用一个javascript呢?
我们在 web form框架下,还可以用 Page.RegisterStartupScript 的方法来向前台传递javascript那么在Razor下,有没有类似的方法呢?
动态的生成javascript 传递给前台去调用。

解决方案 »

  1.   

    “后台调用javascript”这种说法本来就是自欺欺人的。我们允许这种说法,是因为个别菜鸟实在是太菜,只好糊弄着让他学点入门知识。而对于真正想学以致用的人,你应该首先认识到本质上的问题,先从自己的设计思路上改起。
      

  2.   

    说白了,你就是编辑那些将来要输出到前端的输出(文本字符串)而已。任何后台编程都无差别。什么asp.net,什么Razor,根本不能代替或者决定你对javascript的知识,根本无意义。
      

  3.   

    不推荐,真要用可以给你:MVC的ACRTIONRESULT里面可以这样返回:
    RETURN CONTENT("<SCRIPT>ALERT('JS 尽量不要写到CONTROLLER,请写到VIEWS!');HISTORY.GO(-1)</SCRIPT>")
      

  4.   

    代价就是VIEWS得不到返回的MODEL换个思路给你:定义一个VIEWDATA["ERRMSG"]
    在ACTION返回前赋值,对应的VIEWS获取值后,用JS ALERT('@VIEWDATA["ERRMSG"]')即可
      

  5.   

    谢谢,我本来是想用 JavascriptResult 的,但是想动态的生成不一样的结果,有点没思路,你这个思路换成javascriptResult的可以解决。
      

  6.   

    呃……晕,你们都只看标题……不看内容么?
    我的意思是,后台动态生成javascript字符串,好让天台来执行 脚本。
    如果用response.write那么这个脚本是打印在文档最上方的,会破坏整个文档的结构,web from时代,是有这种方法的,只是不知道Razor视图中是否也有而已……
      

  7.   

    Razor页面有需要作后台输出js吗?或者楼主要说的是在action里输出一些js字符串?
      

  8.   

    razor怎么调用类?就是调用.cs文件中的方法?求指教