为什么我的MVC剃刀视图不想实例化一个ResourceManager ?

本文关键字:一个 ResourceManager 实例化 MVC 我的 剃刀 视图 不想 为什么 | 更新日期: 2023-09-27 18:17:08

我正在MVC 3视图上编写此代码:

<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资源相同,但是,整个事情似乎不知道那些应该是类。

我做错了什么?

谢谢。

为什么我的MVC剃刀视图不想实例化一个ResourceManager ?

由于空白,必须使用括号来帮助它看到表达式的开始/结束位置:

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

您可能还想考虑添加一个助手方法,也许作为HtmlHelper上的扩展方法,因此您可以使用如下内容:

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

或类似的,可能看起来像:

public static string Resource<T>(this HtmlHelper html, object key) {
    return new ResourceManager(typeof(T)).GetString(key.ToString());
}

相关文章: