【问题标题】:ASP.NET MVC - How to create a strongly-typed view from classes in referenced class-library?ASP.NET MVC - 如何从引用的类库中的类创建强类型视图?
【发布时间】:2023-04-06 20:34:01
【问题描述】:

我正在尝试使用 Visual Studio 2008 创建强类型视图。我可以右键单击控制器操作并选择:添加视图... 在下一个对话框窗口中有一个选项“创建强类型看法'。如果我选中此选项,我可以选择当前项目中的类列表。

但是我无法选择我需要的类,它位于我引用的类库中。

  • 类库是加载在 GAC 中的强类型程序集。
  • 显然项目中引用了该库。
  • 我在 web.config 中添加了一个
  • 我已经重建了多次,并重新启动了VS
  • 类库没有任何问题...

有什么建议吗?

【问题讨论】:

  • 有什么解决办法吗?请在此处更新。

标签: asp.net-mvc view strong-typing


【解决方案1】:

只需使用任何模型类创建您的视图,然后手动编辑 ASPX 并将模型类替换为您想要的模型类。可能对话窗口不够智能。

但在我个人看来,使用“外部”类作为模型是非常错误的。

所有模型、视图和控制器都应该直接在您的项目中。然后他们可以在内部使用任何他们需要的任何东西。

【讨论】:

  • 我同意我不应该使用外部课程。然而,这 - 应该 - 工作。它是一个只读类库,内置集合和实体。我喜欢你手动替换的建议,但这不起作用,我得到一个编译错误可能是因为继承搞砸了:'Title' is not a member of 'ASP.views_home_list_aspx'
  • 我收到的错误与我的问题无关。你的建议有效。谢谢!
【解决方案2】:

我不确定我自己的类是否出现在列表中 - 我通常只是输入它们(从根命名空间开始)。如果您尝试在文本框中输入例如MyRootNamespace.MyClassLibrary.MyNamespace.AnotherNamespace.TheClass 并单击“确定”会发生什么?

【讨论】:

  • 我可以手动输入包含命名空间的类名,但是视图内容下拉菜单随后被禁用...
【解决方案3】:

我可以手动输入类名 包括命名空间,但是视图 然后禁用内容下拉菜单... – 罗普斯塔 5 月 12 日 13:31

我的自定义数据类也有同样的问题。它们显示在“查看数据类”下拉菜单中,但“查看内容”下拉菜单被禁用。我猜我的类需要实现一些接口。我只是不确定是哪一个。

【讨论】:

【解决方案4】:

现在回答这个问题肯定为时已晚,但对于未来的读者来说:

我注意到我经常必须构建->清理解决方案,然后构建->重新构建解决方案,并且类会神奇地出现(它们应该如此)

【讨论】:

  • 虽然我不确定这个特定的答案是否能解决所提出的问题,但它解决了我最相关的问题,所以谢谢!
【解决方案5】:

这是很久以前发布的,但我的解决方案可能会对某人有所帮助....

我刚刚遇到了同样的问题,我发现如果我将“Controller”作为类名的一部分——我有一个“DoorController”——我无法通过强类型视图选择添加它。它还导致我在asp mvc中出现其他问题。

这对“模型”和“视图”是否也适用?尝试更改模型的类名以解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多