2011-07-07 12 views
8

このリンクで受け入れられた回答として参照されているコードがスレッドセーフであるかどうか疑問に思っています。私はマルチスレッドではありません。私は出力がユーザーページの要求を超えないようにしたい。
Add CSS or JavaScript files to layout head from views or partial viewsこのhtmlヘルパースレッドは安全ですか?

私は、ページへの多くのリクエストがスタイルやスクリプトを越える可能性がある状況がありますか。

ビューがレンダリングされ、結果がレイアウト(マスターページ)にレンダリングされるときに、addメソッドが呼び出されるという点でMVCの知識があれば役に立ちます。 P

;

現在のソリューション

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; 
} 

おかげ

+0

@Konrad多くの多くの要求が同じ 'AppDomain'を使用します。 –

+0

@MarcGravell Ok。 –

+0

オリジナル[回答](http://stackoverflow.com/questions/5110028/add-css-or-js-files-to-layout-head-from-views-or-partial-views/5148224#5148224) –

答えて

5

うーん....私に似ていない(私はそれが改善されなければならない場合はお知らせください) HtmlHelperにはいくつかのインスタンスプロパティがあり、特にViewContextViewDataViewDataContainer経由)などがあります。どこでもstaticを置くのはひどいひどい考えです。

おそらくがこれで取り除かれますが、IMOはまだ非常に悪い考えです。よく目撃された。

+0

ダーン、私は本当にこのソリューションが好きです。スレッドセーフにすることはできますか? –

+0

@Valamas;静的フィールドを使用する代わりに、コンテキスト変数を使用します。 –

+0

@Valams特に、ヘルパーのViewContextにはHttpContextがあります。そこから何かを保存することができます。 ***それは私がここでの保管に使うものです。 –

関連する問題