2011-12-07 8 views
2

インスタンス化したくないん何らかの理由でなぜMVCかみそりビューは、私はMVC 3のビューにこのコードを書いているのResourceManager

<table> 
    <tr> 
     <th>@SecondIndexStrings.Activity_ActivityName</th> 
     <th>@SecondIndexStrings.Activity_DateStarted</th> 
     <th>@SecondIndexStrings.Activity_ProficiencyLevel</th> 
    </tr> 
    @foreach (var activity in Model.Activities) 
    { 
     <tr> 
      <td>@activity.ActivityName</td> 
      <td>@activity.DateStarted.ToShortDateString()</td> 
      <td>@new ResourceManager(typeof(IndexStrings)).GetString(activity.ProficiencyLevel.ToString())</td> 
     </tr> 
    } 
</table> 

とライン「@newのResourceManagerを...」されます有効と認識されず、実行するたびにコンパイルエラーが表示されます。

@ResourceManagerだけを書き込むと、テキストは青色に変わり、有効なクラスとして認識されます。これはIndexStringsリソースと同じですが、すべてがクラスであることがわかっているようです。

私は間違っていますか?

ありがとうございます。そのため、ホワイトスペースの

答えて

5

、あなたはあなたの式が始まる、それは見るのを助けるために括弧を使用する必要があります/終了:

@(new ResourceManager(typeof(IndexStrings)).GetString(activity.ProficiencyLevel.ToString())) 

あなたはまた、おそらく延長-方法として、ヘルパーメソッドを追加することを検討することをお勧めします

public static string Resource<T>(this HtmlHelper html, object key) { 
    return new ResourceManager(typeof(T)).GetString(key.ToString()); 
} 
:ようになります

@Html.Resource<IndexStrings>(activity.ProficiencyLevel) 

または同様、:HtmlHelperに、あなたのようなものを使用することができますので、 10

+0

ありがとうございます。 –

関連する問題