Преобразование в Mvc, ToolkitScriptManager ServiceReference - PullRequest
1 голос
/ 19 августа 2011

Итак, я работаю в гибридном веб-приложении / приложении MVC. Попытка сделать все новые вещи в MVC и медленно менять некоторые старые части веб-форм, когда есть время или необходимость в этом. Использование Razor.

В настоящее время я пытаюсь перенести какой-то старый javascript на страницу mvc, и у меня возникли некоторые проблемы с ServiceReferences. Есть ли способ заставить их работать в Razor, я действительно не хочу переписывать этот js-файл, кажется, это примерно 1500 строк.

У меня есть ссылки на

<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>

Полагаю, должен быть какой-нибудь способ написать эту регистрацию где-нибудь? В веб-формах это работает так, для справки:

<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 вы можете сделать эту бессмысленную магию:

Xyz.Api.ListUXService.Fill(listParams, onFillListSuccess, onFailure, List);

Я бы хотел иметь время, чтобы конвертировать его в jQuery и MVC, но я не делаю:)

1 Ответ

0 голосов
/ 12 ноября 2011

в вашем бритвенном представлении добавить ссылку на частичное представление, это частичное представление должно быть сделано с помощью механизма просмотра веб-форм

<body>
    @Html.Partial("_ScriptManager")
</body>

и затем просто поместите ваш скрипт-менеджер в указанное частичное представление

<%@ 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, но работает, и если у вас нет времени, чтобы изменить тонну устаревшего кода, вот решение.

...