Несоответствие типа словаря в VBScript

Я получаю сообщение об ошибке: Несоответствие типов: «таблицы стилей»

Таблицы стилей определяются как:

sub stylesheets(collection)
    for each key in collection.Keys
        response.write(stylesheet(key, collection.Item(key)))
    next
end sub

' returns a link tag for each object in the collection
function stylesheet(asset, media_type)
    if (media_type="") then
        media_type="screen"
    end if
    return "<link href=""" & asset_url(asset) & """ type=""text/css"" media=""" _
        &  media_type & """ />"
end function

И это называется так:

<% stylesheets(site_stylesheets) %>

Где site_stylesheets был определен как:

' stylesheets is a collection of the stylesheets to be included on all pages
Set site_stylesheets = CreateObject("Scripting.Dictionary")
site_stylesheets.Add "css/endoworks.css", "screen"

Прошло много времени с тех пор, как я делал какие-либо VBScript. Я был бы очень признателен за любую помощь.


person sholsinger    schedule 20.10.2009    source источник


Ответы (2)


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

Попробуй это

<% stylesheets site_stylesheets %>

или это

<% call stylesheets(site_stylesheets) %>
person Tester101    schedule 21.10.2009

В итоге я просто поместил логику цикла из stylesheets в подпрограмму header [процедуру]. Теперь он работает нормально.

@ Tester101: Я попробовал ваши предложения, но они не решили проблему.

Редактировать: я действительно обнаружил, что у меня есть аргумент stylesheets в подпрограмме header, где вызывается подпрограмма stylesheets. Итак, он пытался выполнить nothing с аргументом site_stylesheets. Не могу поверить, что я пропустил это.

person sholsinger    schedule 22.10.2009