首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换为Mvc,ToolkitScriptManager ServiceReference

转换为Mvc,ToolkitScriptManager ServiceReference
EN

Stack Overflow用户
提问于 2011-08-19 04:08:31
回答 1查看 1.2K关注 0票数 1

所以,我正在开发一个混合的web app/mvc应用程序。尝试在MVC中做所有新的事情,并在有时间或需要时慢慢地更改一些旧的webforms部分。使用Razor。

目前,我正在尝试将一些旧的javascript引入mvc页面,但我在使用ServiceReferences时遇到了一些问题。有没有办法让这些在Razor中工作,我真的不想重写这个js文件,看起来大概有1500行。

我有参考资料

代码语言:javascript
复制
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js">   </script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/mvc/2.0/MicrosoftMvcAjax.js"></script>

我猜一定有某种方法可以在某个地方写下这个注册?在webForms中,它是这样工作的,以供参考:

代码语言:javascript
复制
<ajaxToolkit:ToolkitScriptManager ID="cnvScriptManager" EnablePartialRendering="true" ScriptMode="Release" LoadScriptsBeforeUI="true" CombineScripts="true" CombineScriptsHandlerUrl="~/CombineScriptsHandler.ashx" runat="server">
                <Services>
                    <asp:ServiceReference Path="~/ux/controls/util.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/menu/menu.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/menu/list.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/menu/tag.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/canvas/filter/filter.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/canvas/export/export.asmx" />
                </Services>
            </ajaxToolkit:ToolkitScriptManager>

然后在js中,你可以做这个无意义的魔术:

代码语言:javascript
复制
Xyz.Api.ListUXService.Fill(listParams, onFillListSuccess, onFailure, List);

我很想有时间把它转换成jQuery和MVC,但是,我没有:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-12 05:07:51

在您的razor视图中添加对局部视图的引用,此局部视图应使用webforms视图引擎创建

代码语言:javascript
复制
<body>
    @Html.Partial("_ScriptManager")
</body>

然后把你的scriptmanager放在这个局部视图中

代码语言:javascript
复制
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<form id="form1" runat="server">
<ajaxtoolkit:toolkitscriptmanager id="myScriptManager" enablepartialrendering="true"
    scriptmode="Release" loadscriptsbeforeui="true" combinescripts="true" combinescriptshandlerurl="~/CombineScriptsHandler.ashx"
    runat="server">
                <Services>
                    <asp:ServiceReference Path="~/ux/controls/util.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/menu/list.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/menu/tag.asmx" />
                    <asp:ServiceReference Path="~/ux/controls/canvas/dialogs.asmx" />
                </Services>
</ajaxtoolkit:toolkitscriptmanager>
</form>

现在,在所有MVC纯粹主义者发疯之前,我想补充说,我不建议这样做,这与mvc背道而驰,但它是有效的,如果您没有时间更改大量遗留代码,这里有一个解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7113495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档