Funkcja rozszerzająca klasę HtmlHelper

0

Witam, mam napisaną klasę z funkcją która ma rozszerzać działanie klasy HtmlHelper, w pliku z klasą i funkcją nie mam żadnych błędów, jednak kiedy próbuje się do niej odwołać w html'u to jest niewidoczna.
Klasa udostępnia funkcja konwertującą dane z modelu do formatu json:

namespace aspPRZESYL.Extensions
{
    public static class HtmlHelperExtensions 
    {
        public static HtmlString HtmlConvertToJson(this HtmlHelper htmlHelper, object model)
        {
            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                Formatting = Formatting.Indented
            };
            return new HtmlString(JsonConvert.SerializeObject(model, settings));
        }
    }
}


Problem po stronie frontend'u:

    <script>
        function ViewModel(authors) {
            var self = this;
            self.authors = authors;
            };
            var viewModel = new ViewModel(@Html.HtmlConvertToJson(Model));
        ko.applyBindings(viewModel);
        </script>

W miejscu "@html.HtmlConvertToJson" funkcja HtmlConvertToJson funkcja jest po prostu niewidoczna. Jakieś pomysły jak to naprawić?
Model był generowany przy użyciu entity framework, i kiedy wyświetlałem wszystkie dane przy pomocy c# i foreach'a wszystko szło, chce jednak spróbować knockout.js'a. Liczę na waszą pomoc!

0

dodaj do Web.config

<?xml version="1.0"?>
<configuration>
    <system.web.webPages.razor>
        <pages>
            <namespaces>
                <add namespace="aspPRZESYL.Extensions"/>
            </namespaces>
        </pages>
    </system.web.webPages.razor>
</configuration>
0

Wrzuciłem, strona nie działa i wyrzuca warning o braku atrybutu pageBaseType, jednak kiedy zamiast samego <pages>, wrzucam <pages pagebasetype="System.Web.Mvc.WebViewPage"> warning znika ale strona dalej nie działa, jakieś rady?

0

Mój błąd, nieprecyzyjnie napisałem, miałem na myśli Web.config z folderu Views, nie tego bezpośrednio z solucji, tam już powinien być element system.web.webPages.razor z dodanymi namespacami, i dodać tam trzeba swój namespace.

0

Ogromnie dziękuje!

1 użytkowników online, w tym zalogowanych: 0, gości: 1