问题标签 [t4mvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3154 浏览

t4mvc - T4MVC 没有为一个控制器生成一些动作

我有一种情况,T4MVC 正在正确生成所有内容(意味着智能感知显示所有区域/控制器/操作并且所有内容都可以编译),但是当我运行代码时,出现T4MVC was called incorrectly运行时错误。

我调查了生成的文件,发现对于我项目中的一个控制器,只有基类中的操作会生成覆盖的存根操作。对于其他控制器,正在生成所有操作。它们都具有相同的设置,如下所述。

我有一个BaseController类有一些共享代码(并继承自Controller)。在Controllers目录(项目的根目录)中,我有许多控制器,它们都继承自BaseController.

然后我有几个区域。在每个区域中,我都有相同的控制器,每个控制器都继承自根 Controllers 目录中的同名控制器。

运行 T4MVC(版本 2.6.54),除了一个控制器外,一切正常。奇怪的是,智能感知适用于控制器,但在引用实际操作时(在ActionLink()调用中)会阻塞。

我在生成的代码中特别手动添加了一项操作,并且没有错误。

所以我的问题是,什么会导致 T4MVC为控制器生成所有代码?缺少的动作是全部public virtual ActionResult,并且动作本身可以正常工作。问题控制器在所有区域都有相同的问题。

一些缩写代码。

/控制器/BaseController.cs

/Controllers/ActivitiesController.cs(这是问题控制器)

/Areas/Module1/Controllers/ActivitiesController.cs。这是全班

0 投票
1 回答
681 浏览

asp.net-mvc - T4MVC 没有生成常量?

为什么 T4MVC 生成的代码中没有常量字符串?我的猜测是常量值的编译时复制......

但是向生成的代码添加常量将允许在属性中使用 T4MVC 生成的东西。

我想这样的事情:

插入@第 400 行:

插入@第 445 行:

所以有人可以这样使用它:

编辑:将其用作模型上的自动完成属性,因此可以在模型上指定“目标”控制器和操作。虽然可以修改自动完成属性以将 ActionResult 作为参数而不是控制器+动作名称......

0 投票
1 回答
239 浏览

t4mvc - 在 Javascript 中使用 MVCt4

我最近成为了一个 T4MVC 狂热分子,现在我似乎无法在我的 MVC3 项目中使用可视字符串。我目前正在尝试使用 T4MVC 链接到 JavaScript 函数中的脚本文件,但似乎我做错了或者不可能。代码如下。任何帮助,将不胜感激。

编辑:

抱歉,JavaScript 中的 T4MVC 没有问题。查看页面源,链接文本生成正确。

0 投票
1 回答
702 浏览

asp.net-mvc - T4MVC 处理使用 Chirpy 生成的缩小的 js 和 css 文件

我在 ASP.Net MVC 3 网站中使用 T4MVC 和 Chirpy 插件,我喜欢它们。只有 T4MVC 似乎无法处理使用 Chirpy 和 .yui.js javascript 文件生成的缩小 js 文件。Chirpy 正在生成 .min.js 文件,但默认的 T4MVC 脚本需要 .yui.min.js。

我对 T4MVC 进行了以下调整以使其工作在T4MVC.tt.settings.t4 我添加了

在第 983 行的T4MVC.tt中,我更改了代码

我讨厌编辑包含这样的脚本,但我没有看到其他解决方案。

那么有没有人有更好的解决方案来单独保留默认的 T4MVC 脚本?

0 投票
1 回答
427 浏览

asp.net-mvc - T4MVC 与便携式操作兼容吗?

T4MVC 与传统的 ASP.NET MVC 结构配合得很好。但它是否适用于便携式区域(来自 MvcContrib 的功能)?

0 投票
3 回答
1806 浏览

constructor - t4mvc:不能继承没有默认构造函数的控制器类?

我将 T4MVC 与 MVC2 一起使用。

我有以下构建块:

  1. 一个简单的实体接口,它定义了每个 POCO 实体必须有一个long Id属性:

    /li>
  2. 一个简单的 POCO 类,它实现了IEntity接口并具有一些字符串属性:

    /li>
  3. 基础控制器:

    /li>
  4. 我在我的CDControllerCDManager实现IEntityManager接口,这是一个 UnitOfWork 模式以添加 CRUD 功能)中使用这个基本控制器:

    /li>

当我运行我的 t4 模板时,会生成以下代码:

但这在编译期间给了我一个错误:

MyApp.EntityController<CD> 不包含采用 0 个参数的构造函数

我该如何解决这个问题?

0 投票
3 回答
5406 浏览

asp.net-mvc - T4MVC @Url.Action(MVC.Controller.Action()) 在 QueryString 中呈现 "?Area=" 参数

我正在使用以下方法将部分操作中的菜单直接渲染到布局:

此操作确定要呈现的菜单部分。例如,公共菜单部分。在这些部分中,我还使用 T4MVC 来呈现链接:

出于某种原因,T4MVC 渲染的 Url 在末尾包含“?Area=”:

我的项目中没有区域,并且我已将“IncludeAreasToken”设置为 false。奇怪的是,只有当我使用“@Html.Action”渲染部分时才会发生这种情况——如果我将它作为“@Html.Partial”拉入,则不会渲染参数并且链接是干净且正确的。(虽然我不想将其呈现为部分内容,所以请不要将其作为建议提供;)

有没有人遇到过这种情况?

0 投票
3 回答
1470 浏览

asp.net-mvc - T4MVC“运行自定义工具”生成 EnvDTO 7.0 vs 8.0 csc 警告

当我右键单击 T4MVC.tt 并选择“运行自定义工具”(即通过 T4MVC.cs 文件重建)时,我收到以下警告。

警告 1 编译转换:假设程序集引用 'EnvDTE, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 匹配 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a',您可能需要提供运行时策略 C:\Development\EHealth-Trunk\src\EHealth.Web\T4MVC.tt 1 1

真的没什么大不了的,我只是不喜欢在我的代码库中有(不必要的)警告......

0 投票
1 回答
150 浏览

c# - 查看安装 T4MVC 时未呈现

我有一个 ASP.NET MVC 3 Web 应用程序。我最近使用包管理器安装了 T4MVC 模板:

这导致 T4MVC.tt 和 T4MVC.tt.Settings.t4 被包含在我的项目中,并且一堆文件被自动生成(我在项目中有大约 10 个控制器)。在那之后,我尝试构建并运行我的项目,虽然我没有收到任何错误,但在其中一个控制器上,没有呈现任何操作。这意味着浏览器正在提供一个完全空白的页面,而不是从关联视图生成的页面。所有其他控制器工作正常。

我真的无法辨别这个控制器和其他工作正常的控制器之间有什么区别,就像我说的没有错误......当我在那个控制器上点击一个动作时,只提供了一个空白页面。

关于可能发生什么的任何想法?

0 投票
1 回答
457 浏览

asp.net-mvc-3 - T4MVC 和 MvcContrib.TestHelpers 测试得到“相对虚拟路径”错误

我的问题是由于我在 MVC 领域的 n00bness,但我正在尝试为使用 T4MVC 生成的控制器中的函数编写测试。所以我想我也会使用 MvcContrib.TestHelper 。

我新建了一个 TestControllerBuilder 和我的控制器,当我尝试在其上调用 InitializeController 时出现异常:

System.TypeInitializationException:“图像”的类型初始化程序引发异常。---> System.Web.HttpException: 应用程序相对虚拟路径 '~/Content/Images/add.gif' 不能设为绝对路径,因为应用程序的路径未知。

好的,它正在尝试获取图像并且它们不在测试可执行文件的相对路径中......我该如何告诉它?

我试过这个 T4MVCHelpers.ProcessVirtualPath() 但是当它调用 VirtualPathUtility.ToAbsolute() 方法时,我在那里尝试的几乎所有东西都会引发错误。

我毫不怀疑我做错了什么。我对 TestControllerBuiler 将为我设置我的模拟 HTTPContexts 的理解是否不正确?我可以告诉它忽略图像内容吗?

请帮助n00b。一个关于如何使用 TestHelper 和 ProcessVirtualPath 的简单示例会很棒。

更新

对于那些遇到类似错误的人,我的原因是因为在控制器构造函数中使用了 httpcontext。就我而言,它在生成的强类型图像路径 T4MVC 上出错。