如何管理控制器中的可重复文本?

时间:2013-11-13 16:31:32

标签: c# asp.net-mvc-3 asp.net-mvc-4

我正在我的控制器中进行一些简单的验证。我一直在重复下面引号中的文字:

if (!validate)
{
    _MyServices.Notifier.Error
        ("There are some errors. Please correct them and 
        submit this Form again.");
    return false;
}

_MyServices只是对我所使用的API的调用,其中包括在我的视图的特定部分中显示错误的通知。这只是一个例子。

我想做的是在某个地方保留一个字符串,这样我就不必每次都复制它,而是在一个地方只需要一个更改。

我对这些东西并不擅长,所以我怎样才能在我的控制器中做到这一点?或者可能在多个控制器可以调用的单独文件中?提前谢谢。

1 个答案:

答案 0 :(得分:4)

我会使用资源文件存储您的字符串,然后可以通过C#本身引用它。

此外,这有助于您将来的应用程序本地化。

要创建资源文件,只需右键单击您的文件夹,然后添加新项目。然后选择资源文件,它应该具有扩展名.resx

创建后,您可以在左栏中添加一个键,第二列包含该字符串。

enter image description here

确保将访问修饰符设置为“公开”。

然后,从代码中,您需要引用Resource文件的默认命名空间,该命名空间与在同一文件夹中创建的任何类相同。

因此,如果您要在应用程序的Resources目录中创建资源文件,那么您将像这样引用命名空间。

using MyApp.Resources;

然后您需要像这样引用应用程序中的特定字符串。这使用您将资源文件命名为“MyResources.resx”

的示例
MyResources.Error;

资源文件创建一组静态属性,这些属性使用您的Key作为字符串。您输入的键值不能包含空格,但可以包含一些符号。