Наследовать только код JavaScript с главной страницы - PullRequest
1 голос
/ 24 февраля 2011

Итак, у меня есть функция Javascript на моей главной странице. Он работает нормально, когда я вызываю его со страниц, которые происходят из этой главной страницы, однако, на страницах, которые этого не делают, он явно не работает. Я не могу поместить его в другой файл .js, потому что он использует некоторый встроенный код C #, поэтому он должен быть внутри тега <script>.

Это функция:

function GridExport(viewUrl, fileName)
    {
        var actionUrl = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/ExportToExcel")%>";
        var guid = GetGUIDValue();
        window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
    }

Есть ли способ, которым я могу просто включить определения Javascript из моей главной страницы в другое представление, не производя его от главной страницы?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Мастер-страницы могут быть встроены друг в друга. Почему бы просто не сделать мастер-страницу, содержащую только ваш javascript. Затем создайте другую главную страницу, в которой главная страница javascript является главной. При создании новых страниц вы можете выбрать, какую из них использовать.

MasterPage1 -> Просто JavaScript

MasterPage2 -> Содержит другие ваши материалы и MasterPage1 в качестве мастера

Если вам нужен только javascript, тогда используйте MasterPage1, для всего остального - MasterPage2.

0 голосов
/ 24 февраля 2011

Вы можете создать UserControl, содержащий это <script> или абстрагировать actionUrl в параметр функции GridExport

function GridExport(viewUrl, fileName, actionUrl)
{
    var guid = GetGUIDValue();
    window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
}

Еще один удобный способ избежать этой проблемы с путями - иметь глобальную переменную для определения корня сайта:

var root = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/") %>";

тогда ваша функция всегда может использовать эту переменную и добавить то, что ей нужно:

function GridExport(viewUrl, fileName)
{
    var actionUrl = root + "mvc/Indications.cfc/ExportToExcel";
    var guid = GetGUIDValue();
    window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
}
...