访问MVC 3中的资源文件

时间:2011-04-15 06:19:03

标签: javascript asp.net-mvc-3 resources

我想从java脚本和.cshtml视图中的资源文件中访问键/值对。 对于我的cshtml上的一些静态内容,我不想在我的模型中创建属性,所以如果我可以直接访问资源文件会很好。

3 个答案:

答案 0 :(得分:15)

您可以创建一个resx文件并将其属性设置为public, as described here

然后在cshtml上,您可以使用:

@Resources.ResNameHere.Property

要在javascript上使用,只需在script

上呈现它
<script>
    var stringFromResource = "@Resources.ResNameHere.Property";
</script>

您还可以实现Html的扩展方法,并在任何地方读取资源,如果需要,甚至可以从数据库读取。

public static MvcHtmlString Resource<T>(this HtmlHelper<T> html, string key)
{
    var resourceManager = new ResourceManager(typeof(Website.Resources.ResNameHere));

    var val = resourceManager.GetString(key);

    // if value is not found return the key itself
    return MvcHtmlString.Create(String.IsNullOrEmpty(val) ? key : val);
}

然后你可以打电话给

@Html.Resource("Key")

答案 1 :(得分:0)

您应该能够通过生成的代理类从Razor视图访问资源。这不适合你吗?

答案 2 :(得分:0)

当我们想要从JavaScript和.cshtml视图中的资源文件中访问键/值对时,让我们考虑以下情况。

内部.cshtml

@Html.ActionLink("New Contact", null, null, null, new { id = "general", Href = "#", @Newtitle = @Resources.General.Newtitle })

资源文件包含以下数据

Name      Value
----      -----
Newtitle  New title Value

现在您已准备好使用资源数据

JavaScript内部

$('#general').click(function (evt) {
    alert($(this).attr("Newtitle"));
    evt.preventDefault();
});

感谢。