【问题标题】:Access application settings from ASP.Net MVC View从 ASP.Net MVC 视图访问应用程序设置
【发布时间】:2010-11-06 04:47:06
【问题描述】:

在 ASP.Net MVC 1.0 应用程序中,是否可以从我的视图(aspx 页面)内部访问应用程序设置(MyProject.Properties.Settings.Default.*)?

我试过了,但智能感知和编译器不喜欢它。它说由于保护级别而无法访问。

【问题讨论】:

  • 另一个问题是:是否应该允许视图从配置中读取任何内容?
  • 您的相关问题(在Haack的回答中的评论中提到):您需要打开设置文件,在右上角您可以设置可访问性(内部与公共)

标签: asp.net asp.net-mvc view application-settings


【解决方案1】:

我遇到了与 Saajid Ismail 类似的问题,我的设置位于 namespace.Properties.Settings.Default.Setting 中,因为它们是强类型的。

为了让它们可以访问,我只需要更改访问修饰符

【讨论】:

    【解决方案2】:

    你的视图应该只负责渲染控制器给它的数据。它的职责是布局。因此,我建议您在 Controller 操作中将应用程序数据传递给视图。

    话虽如此,您的问题的技术答案是 ViewPage 派生自 Page,因此您可以简单地这样做:

    <%= Context.Application["setting"] %>
    

    但是,我不推荐它。

    【讨论】:

    • 谢谢菲尔。你的解释对我来说很有意义。我正在实现一个 PhotoGaller 类型的服务,并在 web.config 中定义了默认图像大小。我想向用户显示这些尺寸,以便他们了解他们的图像需要符合某些尺寸,否则它将被调整大小/拒绝。因此,在我看来,这纯粹是出于展示目的。我会将这些信息从控制器传递到我的视图。谢谢。,
    • 一个相关的问题是 - 为什么我不能从我的视图中访问强类型设置类。我指的是settings.settings文件,一般通过MyProject.Properties.Settings.Default.StronglyTypedSetting访问。我知道我不应该这样做——我明白这一点。我想了解为什么编译器不让我访问它。设置类被标记为内部,我试图从同一个项目中访问它,据我所知,应该没有问题..
    • 但是,如果设置中的信息具有更全局的性质——例如应用程序版本号——并且该信息将由一个或多个母版页显示,那么这不是控制器相关责任。在 HttpHandler 或 HttpModule 实现中处理这个更有意义吗?
    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多