【问题标题】:Asp.Net Mvc: Cannot access my models namespace from my viewAsp.Net Mvc:无法从我的视图访问我的模型命名空间
【发布时间】:2011-04-10 11:19:06
【问题描述】:

所以我的 Mvc 项目的“models”文件夹中有一个 ViewModel,其命名空间为“Web.Models”(我的 Mvc 项目称为“Web”)我认为值得一提的是我的解决方案中有 3 个其他项目:域、测试和任务。视图模型从我的 Domain.Entities 文件夹中的类中分配属性。当我在控制器中添加命名空间时,我可以在控制器中创建视图模型的新实例。

using Web.Models;

但是,当我创建视图时,它似乎无法导入命名空间。它实际上提示我通过 'alt+ enter' 或 'ctrl + dot' 添加命名空间,但它仍然说它无法解析对象。

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Web.Models.MyViewModel>" %>

我还尝试在我的 Web.config 中添加对命名空间的全局引用,但没有成功。 有什么建议?

【问题讨论】:

    标签: c# .net asp.net asp.net-mvc-2 namespaces


    【解决方案1】:

    您可以在system.web/pages/namespaces 下的 web.config 中添加它。例如,

    ...
    <namespaces>
        ...
        <add namespace="Web.Models"/>
    </namespaces>
    ...
    

    【讨论】:

    • 这就是我在创建“全局”命名空间时所指的,但它已添加到我的 Web.confing 的命名空间中
    • 救了我的命!非常感谢!
    【解决方案2】:

    首先,编译您的应用,然后确保 MyViewModel 是公开的。

    【讨论】:

    • 已编译多次,已公开。
    • 它“应该”工作。尝试在视图本身中添加显式包含语句:
    • 我也试过了。我在解决方案中有 4 个项目,我想知道我是否在这方面遗漏了什么。
    • 视图与模型是否在不同的项目中?项目之间是否添加了项目引用? (现在抓着稻草了!)
    • 我知道它很奇怪......真正奇怪的是该类在控制器中可用,但在视图中不可用。我可以让它工作,我已将命名空间更改为 system.web.mvc,并将其移至我的域项目并将命名空间更改为 domain.models。我想在这一点上它只是更令人烦恼(而且真的很奇怪,以前从未发生在我身上)。
    【解决方案3】:

    发现它与我的 ReSharper 构建有关,我更新到 5.1,它解决了我猜想的某种“缓存错误”。

    【讨论】:

    • 我清除了 Resharper 的缓存,所以这也是我的问题。我最近将视图模型命名空间移到了 Web 配置中,但它不喜欢它。
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 2012-12-21
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多