1

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

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

4

4 回答 4

3

对于这种情况,我会将其保存在类文件中。但是最好的解决方案取决于项目,以后的规模等等。

于 2014-01-30T18:59:42.847 回答
3

毫无疑问,您是否想要访问您的 web.config 文件的视图。

如果这是在您的视图中的许多地方显示的东西并且需要一个静态设置变量,那么制作一个局部视图来显示数字,并多次调用局部视图。

优点是您将其保留在可重用区域中,因此如果您更改一次,它会随处更改,而且您不会通过让您的视图在不应该的地方进行调用而违反任何关注点分离。没有访问权限。更新部分也不需要重新编译。

/Shared/_PhoneNumberPartial.cshtml

<span>555-1234</span>

在视图中使用

<div>Phone Number<br/>
 @Html.Partial("_PhoneNumberPartial")
</div>
于 2014-01-30T19:03:33.470 回答
1

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

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

然后你就可以使用它了

using System.Configuration;
string Phone = ConfigurationManager.AppSettings["PhoneNum"].ToString();
于 2014-01-30T19:02:02.250 回答
1

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

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

于 2014-01-30T19:04:26.603 回答