Telerik MVC контролирует, OnDocumentReady запускается дважды - PullRequest
2 голосов
/ 21 октября 2010

Я новичок в средствах управления Telerik MVC, так что это может быть что-то простое.

Я начал с создания нового решения TelerikMvcApplication.

Site.Master:

    </div>
    <%: Html.Telerik().ScriptRegistrar().DefaultGroup(group =>
          group.Combined(true).Compress(true).Add("Index.js")) %>
</body>
</html>

Index.aspx:

    <%: Html.Telerik().ScriptRegistrar().OnDocumentReady("Index.Init()") %>
</asp:Content>

Index.js:

var Index = function () {
    return {
        Init: function () {
            alert('1');
        }
    };
} ();

Когда я загружаю Index.aspx, функция Init () в Index.js запускается дважды,поэтому я вижу 2 оповещения один за другим.Если я назначу обработчик щелчка для кнопки внутри функции Init () и нажму на кнопку с помощью FireBug, он фактически показывает 2 события, назначаемые кнопке.Почему это происходит?

Редактировать

После еще одного поджога я выяснил, что оба вызова ScriptRegistrar выполняются.Как мне сделать только один мастер для рендеринга?

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Чтобы ответить на мой собственный вопрос, проблема заключалась в использовании

<%:  %>

с двоеточием.

Чтобы исправить это, я удалил символ двоеточия из Master и View и вызвалВизуализация () в Master.

Master:

<% Html.Telerik().ScriptRegistrar().DefaultGroup(group =>
   group.Combined(true).Compress(true).Add("json2.js")).Render(); %>

Просмотр:

<% Html.Telerik().ScriptRegistrar().Scripts(scripts =>
   scripts.AddGroup("IndexGroup", group =>
   group.Add("~/Scripts/Index.js"))).OnDocumentReady("Index.Init()");  %>
0 голосов
/ 01 сентября 2012

Для MVC Razor ViewEngine:

@{
    Html.Telerik().ScriptRegistrar().OnDocumentReady(
    @<text>
        alert('onLoaded');
    </text>);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...