2011-07-07 21 views
8

Zastanawiam się, czy kod podany jako zaakceptowana odpowiedź na ten link jest bezpieczny dla wątków. Nie chodzi mi o wielowątkowość. Po prostu nie chcę żądać strony użytkownika przekierowania wyjścia.
Add CSS or JavaScript files to layout head from views or partial viewsCzy ten wątek pomocniczy html jest bezpieczny?

Czy miałbym sytuację, w której wiele próśb o stronę mogło przekroczyć style i skrypty.

Może to pomóc, jeśli masz wiedzę na temat MVC, ponieważ metody dodawania są wywoływane, ponieważ widoki są renderowane, a wynik jest renderowany do layoutu (strony wzorcowej).

Aktualny Solution (Proszę dać mi znać, jeśli powinna być poprawiona)

public static MyCompanyHtmlHelpers GetInstance(HtmlHelper htmlHelper) 
{ 
    MyCompanyHtmlHelpers _instance; 
    if (htmlHelper.ViewData["SectionHelper"] == null) 
    { 
     _instance = new MyCompanyHtmlHelpers(); 
     htmlHelper.ViewData["SectionHelper"] = _instance; 
    } 
    else 
     _instance = htmlHelper.ViewData["SectionHelper"] as MyCompanyHtmlHelpers; 

    _instance.SetHtmlHelper(htmlHelper); 

    return _instance; 
} 

dzięki

+0

@Konrad wielu wielu żądań używa tego samego 'AppDomain' –

+0

@MarcGravell Ok. –

+0

Oryginał [odpowiedź] (http://stackoverflow.com/questions/5110028/add-css-or-js-files-to-layout-head-f-views-or-part-views-view/5148224#5148224) został zaktualizowany –

Odpowiedz

5

Hmm .... nie wygląda to dla mnie; p

HtmlHelper ma pewne właściwości instancji, w szczególności ViewContext i ViewData (przez ViewDataContainer) itp. Oddanie tego gdziekolwiek jest static to okropny straszny pomysł.

Z podstawowym kodem, który się dzieje prawdopodobnie uciec, ale: IMO to nadal jest bardzo zły pomysł. Dobrze zauważony.

+0

darn, naprawdę podoba mi się to rozwiązanie. Czy można to uczynić bezpiecznym dla wątków? –

+0

@Valamas sure; ale zamiast używać pola statycznego użyłbym zmiennej kontekstowej ... –

+0

Zwłaszcza w szczególności @Valams, ViewContext pomocnika ma HttpContext; z tego możesz przechowywać wszystko. *** To *** jest tym, czego użyłbym do przechowywania tutaj. –

Powiązane problemy