在我的ASP.NET MVC应用程序中存储字符串常量的位置?

时间:2014-01-30 18:56:30

标签: asp.net-mvc asp.net-mvc-views

具体来说,我有一个电话号码,用于一堆视图(以及一些操作),我想将其集中在某处,以防它发生变化。 web.config足够好吗?这有更好的地方吗?理想情况下,如果值发生更改,我不必重新编译。谢谢!

更新:到目前为止,我喜欢局部视图最好,主要原因是没有重新编译,没有将它添加到视图模型中。我探索过的另一个选项是global.asax中的Application_Start并使用Application字典(尽管听起来像是在mvc中使用这个字典)。需要注意的一点是,我还需要在某些操作中使用此数字。还有更多想法/意见吗?

4 个答案:

答案 0 :(得分:2)

具体来说,我会将它保存在类文件中。但最好的解决方案取决于项目,后期规模等,等等。

答案 1 :(得分:2)

您可以毫不含糊地查看访问web.config文件的视图。

如果这是在视图中的许多位置显示并需要静态集变量的内容,则创建部分视图以显示数字,并多次调用局部视图。

优势在于您将其保留在可重复使用的区域中,这样,如果您更改一次,它会随处更改,并且您不会通过让您的视图拨打电话来解决任何违规问题它不应该有访问权限。更新部分也不需要重新编译。

/Shared/_PhoneNumberPartial.cshtml

<span>555-1234</span>

在视图中使用

<div>Phone Number<br/>
 @Html.Partial("_PhoneNumberPartial")
</div>

答案 2 :(得分:1)

您可以在网络配置中将电话号码添加到appSetting key/value,如下所示:

<appSettings>
     <add key="PhoneNum" value="1234567890"/>
 </appSettings>

然后你可以使用它

using System.Configuration;
string Phone = ConfigurationManager.AppSettings["PhoneNum"].ToString();

答案 3 :(得分:1)

对于类似电话号码的东西,我会把它放在某种数据存储器中。如果您不需要完整的数据库,请考虑像基于文件的存储这样简单的内容,甚至是简单的* .json或* .xml文件,最好是在AppData文件夹中。但是,如果您这样做,您应该通过ViewModel将其传递给您的视图,并让您的控制器或其他方法从您的数据存储中进行实际读取。视图不应直接访问它们。

我发现web.config最适合配置设置。毕竟它是一个配置文件。这不是放置内容的最佳位置。您的电话号码是内容,对我而言,内容应位于动态且结构化的位置。