warensoft 我是科学家

Warensoft 我是科学家

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

JS调用C#补充

 

前面的Blog中对JS调用C#做了一个简单说明,其中要是ASPX页面中添加一个ScriptManager控件,但是这种做法在ASP.NET MVC中是不可行的,下面对其不可行原因以及解决方案做一个简要说明。

1.      ScriptManager的作用

前面的Blog中,是利用ScriptManager引用了一个WCFWebService,其代码如下:

<asp:ScriptManager ID="ScriptManager1" runat="server">

        <Services>

        <asp:ServiceReference Path="~/Service.svc"/>

        Services>

        asp:ScriptManager>

<asp:ServiceReference Path="~/Service.svc"/>的作用在表面上看来是引用WebService,但是实际是在页面展现的时候,根据此WebService路径生成JS的代理类。然后再添加一个JS代码的引用,生成的HTML代码如下所示:

 

height=367

 

             在ASP.NET中使用ScriptManager会出现问题,是由于ScriptManager是System.Web.UI.WebControls下面的一个类,说白了它是WebForm的一个组件,在ASP.NET MVC下根本没有WebForm的概述,自然也就会出现问题了。

 

2.      ASP.NET MVC模式下的解决方案

根据上面的解释,我们可以非常简单的解决这个问题,如果不使用ScriptManager可以直接在页面里添加JS代理类的引用,如下所示:

<script type="text/javascript" src ="Service.svc/js">script>

但是对代理类的访问一定要放在Window.OnLoad之后才行!


posted on 2010-03-08 14:17  王宇 warensoft  阅读(828)  评论(0编辑  收藏  举报