问题标签 [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 回答
6302 浏览

c# - 如何让 T4MVC 重新生成 .generated.cs 文件?

我正在向 NerdDinner DinnersController 类添加测试,当我创建执行构造函数注入所需的构造函数时,我与 T4MVC 生成的构造函数(特别是基本构造函数)发生冲突。如果基本构造函数已经存在,那么它看起来不会生成——这是真的吗?如果是这样,我需要做什么来重新生成 T4MVC 文件?

谢谢,戴夫

0 投票
2 回答
1335 浏览

c# - T4MVC 在单元测试期间抛出 TypeInitializationException -- 我该如何解决这个问题?

我正在向 NerdDinner 解决方案添加单元测试,并遇到了这个问题。我正在测试这里给出的 Edit POST 方法:

System.TypeInitializationException 在“return RedirectToAction ...”行中被抛出,并显示“'MVC' 的类型初始化程序引发了异常。”

当我用原始行(上面注释掉)替换 T4MVC 编码的行时,我没有得到异常。

下面是单元测试代码:

我有几个想法可能会导致抛出此异常,但我不确定是否可以在这里提出。我完全不清楚如何解决它。

想法?

戴夫

0 投票
1 回答
981 浏览

model-view-controller - 将 T4MVC 与构建脚本一起使用

有没有人让 T4MVC 作为构建脚本的一部分运行?最好是 NAnt 构建脚本。

我不想签入生成的文件,只需让构建服务器将它们创建为构建的一部分,但 T4MVC 只会在 Visual Studio 内部运行。

我试过了:

有没有人成功地找到工作的解决方案?

0 投票
1 回答
1647 浏览

asp.net-mvc - 为什么 T4MVC 尝试从 Html.ActionLink 运行控制器动作?

在我的控制器中,我传入一个IUnitOfWork对象(从 IoC 生成),然后在控制器操作中用于数据库功能(IUnitOfWork传递给我的服务层)。

在我的一种观点中,我想给出一个链接/Company/View/<id>,所以我调用以下内容:

这不是从Company控制器调用的,而是从不同控制器中的视图调用的。问题似乎是MVC.Company.View(company.Id)似乎实际上是在调用CompanyController.View(id)方法本身。这很糟糕,原因有两个。

1) 由于CompanyController' 的非无参数构造函数从未被调用,因此不UnitOfWork存在,因此当View(int id)调用动作时,动作的数据库调用失败并带有NullReferenceException

2)即使IUnitOfWork存在,我的视图也不应该触发数据库调用,以便生成我的链接。 Html.ActionLink(company.Name, "View", new { id = company.Id })不会触发任何数据库调用(因为没有调用操作方法),所以就我而言tml.ActionLink(company.Name, MVC.Company.View(company.Id)),也不应该触发任何数据库调用。这是过多的数据库调用绝对没有收获。

是否有任何理由创建 T4MVC 以这种方式运行?


编辑:这是 CompanyController 的声明

0 投票
3 回答
516 浏览

asp.net-mvc - 在 ASP.NET MVC 中如何选择生成传出 URL 的路由?

再会!

我正在使用 ASP.NET MVC 2 和 T4MVC,似乎正在发生一些代码魔术

当我将此添加到路由表时:

当我在视图中编写类似这样的内容以生成传出 URL 时,框架如何知道我希望应用此规则:

如果我对同一个控制器/动作对有多个不同的规则(具有不同的参数)怎么办?会选择哪一个?有什么地方可以很好地描述这种行为吗?

提前致谢!

0 投票
1 回答
2320 浏览

.net - T4MVC 异步控制器

我最近使用 Nuget 安装了 T4MVC。在此之前我有一个旧版本可以正常工作,但是我有一个需要异步控制器的新要求。创建异步控制器后,由于与 t4 有关,我的项目无法编译。所以我使用 Nuget 进行了更新。

我现在遇到的问题是我的控制器工作正常,直到我最近刷新了 t4mvc。刷新我的代码编译后,但是当我调用异步操作时,它会在很长一段时间后返回并返回大量不正确的数据。此外,至关重要的是,如果我在控制器中设置断点,它就不再命中它们?!如果我将 DocumentController.generated.cs 恢复到最后一个工作版本,一切正常。

下面是我的旧 DocumentController.generated.cs 有效,而新的无效。

谁能帮我弄清楚这里发生了什么?我已经变得依赖 T4MVC,因为它非常好,但是我真的无法避免这些异步操作。

老的

新的

根据要求,这是我的 DocumentController 类的存根;

}

2011 年 7 月 4 日更新

嗨大卫,很抱歉花了这么长时间才回复你,我一直在研究其他一些工作。

我已经设法找出问题所在,希望您能对此有所了解,并可能创建一个修复程序。

如果您查看上面的第二个代码转储,这就是问题所在。问题是您已经创建了;

我不认为 MVC 抛出错误,但它是;

2011-04-07 15:59:38,921 [41] FATAL MvcApplication [(null)] - 发生未捕获的异常 System.Reflection.AmbiguousMatchException:在控制器类型“DocumentController”上查找方法“GetDocumentListCompleted”失败,因为以下方法: System.Web.Mvc.JsonResult GetDocumentListCompleted(Web.Gateway.DocumentMetaDataCollection) 类型为 WebUI.Client.Controllers.DocumentController System.Web.Mvc.JsonResult GetDocumentListCompleted() 类型为 WebUI.Client.Controllers.DocumentController 在 System.Web .Mvc.Async.AsyncActionMethodSelector.GetMethodByName(String methodName)

因此,据我了解,MVC 系统与我的代码和您创建的代码存在模棱两可的匹配。

如果我注释掉您上面的代码,那么一切都会再次正常运行。

你现在了解本质或问题了吗?可以修复吗?

干杯,

瑞安。

0 投票
3 回答
3344 浏览

asp.net-mvc - ASP.Net T4MVC 文件不更新自身

我正在使用T4MVC模板在 ASP.Net MVC (.Net 4.0) 中工作。

到目前为止,每当我将新文件添加到我的项目(如控制器、视图等)中时,该文件都会自动更新条目。

但由于某种原因,它已停止自我更新。我刚刚将新文件夹添加到项目中,其中包含 3 个aspx文件以及相关的控制器和模型。但是 T4MVC 仍然没有显示这些东西,编译器会因为丢失的东西而给出错误。

有人可以帮我找出原因吗?

谢谢!

0 投票
1 回答
956 浏览

asp.net-mvc - T4MVC 在控件库中使用扩展方法

我编写了一些 razor 助手,这些助手使用的函数包括 T4MVC 生成的扩展方法。我现在想将这些移动到一个控件库中,以便它们可以在多个 mvc 应用程序中使用。我最初使用的想法是我可以将模板的副本放入控件库中,这很有效,缺点是应用程序中使用的模板然后在相同的命名空间中重新生成相同的扩展方法。因为我正在使用一些需要 ActionResult 接口的扩展,所以我确实需要命名空间保持不变。

我想知道的是,是否有一种已知的方法来使用控件库中的扩展以及引用该库的应用程序,或者是否需要更改模板以便可以通过生成或不生成静态扩展方法设置文件中的标志?我还想知道静态扩展是否可以包含在与模板一起存在的单独 cs 文件中。所以我们有 2 个类 T4Extensions 和 DynamicT4Extensions?

不过,这可能会强制使用接口 IT4MVCActionResult,

0 投票
1 回答
2272 浏览

asp.net-mvc - 在 MVC 3 项目中使用 T4MVC 生成的代码编译错误

我们正在使用 ASP.Net 4 和 MVC 3 框架开发一个 Web 应用程序。我已经通过 NuGet 安装了 T4MVC,并且所有视图、控制器和静态内容都成功生成为强类型。

但是,当我尝试编译项目时,它会在生成的文件 T4MVC.cs 中引发错误,即:

这是生成的源代码:

错误说:

应该:

但随后它引发了另一个编译错误,因为此方法应返回代码。

如果我们检查它继承自System.Web.Mvc.ViewResultBase的基类,它实际上声明了带有ViewEngineResult返回类型的FindView () :

有人遇到这个错误吗?它与 MVC 版本有关,我们使用的是 MVC 3 吗?

非常感谢!塞尔吉

0 投票
1 回答
237 浏览

t4mvc - T4MVC 2.6.44 缺少 T4MVC.settings.t4 文件

我从http://mvccontrib.codeplex.com/releases/view/41582下载了最新版本的 T4MVC 2.6.44 。当我解压缩文件时,它有 T4MVC.tt 和 T4MVC.cs。而且我没有看到 T4MVC.settings.t4。我仔细检查了 T4MVCVB 版本是否有 T4MVCVB.settings.t4。我收到一条错误消息,提示在我的解决方案中尝试使用 T4MVC 时缺少 T4MVC.settings.t4。

对此问题的任何帮助表示赞赏。

更新:我在以下位置找到了 T4MVC.settings.t4 文件:http ://code.google.com/p/funnelweb/source/browse/src/FunnelWeb.Web/T4MVC.settings.t4?r=b2af322275f6bc281ced2dfb533c20fff92edabc&spec=svnb2af322275f6bc28192dfb533c20ffedabc

这是否意味着它不包含在 T4MVC 下载中?

谢谢,伊布