【问题标题】:"Add Controller" / "Add View" in a hybrid MVC/WebForms ASP.NET application混合 MVC/WebForms ASP.NET 应用程序中的“添加控制器”/“添加视图”
【发布时间】:2009-10-21 12:13:12
【问题描述】:

我有一个现有的 WebForms 项目,我正在向其中添加 MVC 页面。我创建了一个 MVC 项目并复制了项目类型 guid。

它工作正常,但我无法让 Visual Studio 在我的控制器和视图目录上显示“添加控制器”或“添加视图”向导(它们不是 /Controllers/Views,它们是在/Foo/Controllers/Foo/Views)。

是否可以启用向导?

【问题讨论】:

  • 可能,祝你好运,但我一直发现这些实际上是无用的,因为视图和控制器与常规的 aspx 页面和类没有太大区别。
  • @Will,如果您将此添加为答案,我会接受它 - 我也意识到代码 sn-ps 也为我服务
  • Foo是一个简单的目录还是Area?

标签: asp.net-mvc visual-studio


【解决方案1】:

对于 MVC 3,ProjectTypeGuid 应如下所示:

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

(见Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3

【讨论】:

  • -1:@orip 告诉他他已经更改了 GUID。指南在这里不是问题。他的问题是:如何让这些上下文菜单出现在不同的文件夹中,而不是直接出现在ControllerViews
【解决方案2】:

要获得对混合项目的完整设计器支持,您需要在项目文件中添加 MVC“项目类型”。

打开您的项目文件并将 ProjectTypeGuids 标记替换为

<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

之后,您将在“旧”ASP.NET 项目中看到新的上下文菜单(“添加视图”、“添加区域”、“添加控制器”等)

适用于 MVC 和 MVC 2。

【讨论】:

  • -1:OP 已经添加了您所指的那些 GUID。他的问题是如何将这些向导放在文件夹中,即。 Foo\ControllersFoo\Views 而不是应用程序根目录中的那些夫妇...
【解决方案3】:

对于 MVC 4:

<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

【讨论】:

    【解决方案4】:

    我已经放弃了。相反,我有一些基本的 Resharper sn-ps。太糟糕了,这是不可配置的。

    【讨论】:

    • 你能告诉我你在说什么sn-ps吗?因为现在脚手架还是不行吧?
    • @RobertKoritnik 没什么特别的,只是 sn-ps 让我可以根据我的约定放置控制器/视图名称并获得视图模型名称等,例如LoginView -> LoginViewModel.
    • 还是没有解决办法?我已经为您的问题添加了一些赏金。
    【解决方案5】:

    这是 MVC3 的指南:

    {E53F8FEA-EAE0-44A6-8774-FFD645390401};
    

    卸载您的项目,打开 csproj 文件并将 GUID 添加到标记的开头。没有多余的空格或换行符,然后重新加载项目。像这样

    <ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    

    【讨论】:

      【解决方案6】:

      也许您可以启用它们,但何必呢?只需单击两下即可使用这些向导:右键单击文件夹,单击添加 - 新项目,然后选择“MVC 视图页面”或“MVC 控制器页面”。它们不在上下文菜单中,但它们仍然非常接近...... :)

      【讨论】:

      • (1) 我无法使模板出现在此项目的“添加 -> 新项目”中[我不知道为什么],以及 (2)“MVC 视图页面”模板在“添加 -> 新项目”下,我不能像向导那样选择静态类型的视图模型。
      • @orip: 虽然它确实选择了控制器的自定义模板(如果你把它们放在CodeTemplates 文件夹中)它对视图并没有太大帮助,特别是如果你确实使用那些脚手架的视图...
      【解决方案7】:

      此问题已解决。我有一个混合项目,我遇到了同样的问题。无法在上下文菜单中看到“添加视图/添加控制器”。现在已解决。请看以下链接Context menu to Add Controller/View missing

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 2015-02-11
        • 1970-01-01
        • 1970-01-01
        • 2023-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多