问题标签 [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 投票
1 回答
1129 浏览

t4mvc - T4MVC 控制器生成的文件不会为新添加的控制器更新

我将 T4MVC 添加到我的应用程序中,它为控制器生成了所有必要的文件。但是,当我尝试将新控制器添加到我的应用程序中时,我没有看到这个新添加的控制器的 controller.generated 文件到应用程序中。

我错过了什么还是 T4MVC 的限制?谁可以帮我这个事?

0 投票
2 回答
586 浏览

c# - 使用 T4MVC 的自定义模型绑定器

我的 MVC 应用程序中有一个自定义模型绑定器,但我不知道是否可以使用 T4MVC。

通常我会这样称呼我的行动:

使用 T4MVC 它应该是这样的:

但由于 T4 不知道我的活页夹,他尝试在 url 中发送对象,但我想要的是他生成这样的 url:Contract/{contractId}/Version/{action}/{version}

另请注意,我有一个自定义路线:

这是我的活页夹:

我该怎么办?我不想在我的路线中有魔术字符串......

谢谢!

0 投票
3 回答
1567 浏览

c# - T4MVC - 处理可选参数

我正在使用 .NET 3.5、MVC 2 和 T4MVC 2.6.42...

我有以下动作:

以及以下路线:

但是当我尝试调用时,MVC.Products.Index("anything")我得到一个“方法'Index'没有重载需要'1'参数”异常。MVC.Products.Index()但是,调用是有效的。

我不应该省略“page”参数,因为它默认为“1”吗?

注意:我尝试在路由中将 page 参数默认为 1,但没有成功。

注意 2:还尝试了[Optional] 属性,但没有成功。

0 投票
2 回答
805 浏览

jquery - 通过 Nuget 添加新版本的 Jquery 和 t4mvc 的问题

我已经通过 Nuget 添加了最新版本的 Jquery(1.5.2),但 t4mvc 拒绝看到它。

它不会出现在智能感知中,当我手动输入时,我得到:

这是我用来引用它的代码。

作为一个附带问题,如何通过 NuGet 安装旧版本的 jquery?是否可以?

0 投票
1 回答
622 浏览

asp.net-mvc-3 - MVC 3.0 T4MVC 在 VS 2010 中停止工作

昨天我已经完全编译了 ASP.NET MVC 3.0 项目。今天当我再次打开我的项目时,由于 T4MVC 无法编译,我感到非常惊讶。

我再次通过 NuGet 阅读了 T4MVC 模板,但没有帮助。然后我删除了所有相关的 T4 VS 2010 扩展:T4 Editor、T4Utilites 和 Visual T4,再次打开项目但没有帮助,然后我重新启动并再次安装了 T4 扩展,但也没有帮助。比我创建新的干净的 ASP.NET MVC 3.0 项目并将 T4MVC 添加到此,我遇到了相同的错误(请参阅 peintscreen)。

如果我从解决方案中删除 T4MVC.tt,我就可以编译项目,但是当我把它放回去时,我又遇到了错误。

错误画面 1

打开错误屏幕 1

错误画面 2

打开错误屏幕 2

我认为 Visual Studio 的问题,现在我有一个非常糟糕的主意 - 尝试重新安装 Visual Studio,但可能有人可能会建议更好的东西?

附言 1

这几天我也没有安装任何与 Visual Studio 相关的东西,可能只是通过 Windows 更新的几个小的 Upstate,但它们与 Visual Studio 无关。

我还安装了 MVC 3.0 更新工具,但在今天之前一切正常。

看起来很奇怪,我可以使用此模板成功生成 *.cs 文件,在此过程中我没有遇到任何错误,但由于某种原因,Visual Studio 将 T4MVC.tt 归咎于 T4MVC.tt。

附言 2

实际上也更新了 NuGet 包。可能是这样吗?嗯...但是在删除 NuGet 之后都是一样的:(

0 投票
1 回答
329 浏览

asp.net-mvc-3 - T4MVC 导致错误的 URL

在我的新 MVC Razor 项目上使用 T4MVC,我将有一个像这样的操作链接

所以我希望像 http://localhost:52122/Home/Index这样的网址

但我得到的是 http://localhost:52122/Home/~/Views/Home/Index.cshtml

查看 t4mvc 模板文件,我看到“~/Views/Home/Index.cshtml”的来源,但我不想碰它,因为它是这样制作的,我想我不应该在那里改变任何东西。

问一个朋友,他说我应该使用 RouteLink 而不是 ActionLink,因为我有时会去控制器之外的位置。但是,当我这样做时,我得到:“在路由集合中找不到名为 '~/Views/Home/Index.cshtml' 的路由。” 当我尝试运行该应用程序时。

我想我还应该注意我使用的链接在 _Layout.cshtml

我究竟做错了什么?

0 投票
1 回答
320 浏览

c# - 如何在 T4 for ASP.NET MVC 的嵌套文件夹中生成链接?

我们正在使用 T4MVC 为我们生成指向我们的脚本和内容的链接。我们已经Script为我们的一些区域添加了一个文件夹,并且我们希望 T4MVC 也为它们生成链接。

我们试图修改它以将其作为一行添加到 中T4MVC.tt.settings.t4,但不幸的是没有成功。该Areas/Webcard/Scripts文件夹的链接尚未生成:

向每个区域添加文件夹时,如何为新文件夹生成链接?

0 投票
1 回答
210 浏览

c# - 带有 ActionNames 的 T4MVC

我刚刚在我的项目中包含了 T4MVC 并遇到了一个问题。我通过隐藏的文本字段将数据传递给我的 javascript,并且我需要能够传递控制器的名称及其操作。这是我所拥有的:

我希望能够做到:

由于某种原因,这不起作用。我在想,因为 LogJavascriptError 没有返回 ActionResult。仅供参考 LogJavaScriptError 也接受一个字符串,但我真的只想要动作的名称。我也试过@MVC.Error.ActionNames.LogJavaScriptError 但它可能不会再次出现,因为它没有返回ActionResult?

0 投票
2 回答
2180 浏览

c# - T4MVC 不适用于 Url.Action() 的属性

这是我的原始代码:

这将生成:http://localhost:2543/Account/LoginYoutube

使用 T4MVC 我可以:

并生成:/Account/LoginYoutube

我需要最后一个带有“http”的参数才能获得http://localhost:2543。问题在于 T4MVC 我只能为 Url.Action() 的调用放置 1 个参数。

我怎样才能让它工作?

0 投票
1 回答
2314 浏览

asp.net-mvc-3 - 如何将哈希片段添加到 T4MVC 路由字典 ActionResult?

我有一个返回 ActionResult 的扩展方法(为演示目的而简化):

我在 Html.ActionLink 中使用它:

我正在为选项卡使用自定义 jQuery 插件,它使用这些哈希片段进行导航。我想通过将哈希片段标记到 URL 的末尾来添加要打开的选项卡。

Html.ActionLink 确实有片段的重载,即:

然而,这充满了令人讨厌的魔法字符串,T4MVC 旨在删除这些字符串。无论如何在我的静态扩展方法(GetTestActionResult)中将片段添加到路由字典中?

就像是:

我知道关于 SO 有两个类似的问题和答案,但它们并不能完全为我提供我正在寻找的东西。在将片段传递回视图之前,我需要将片段包装到 ActionResult 中:

  1. 在 ASP.NET MVC URL 路由中包含哈希值
  2. 使用 url 片段创建 T4MVC ActionLink

更新:

使用下面 David Ebbo 的修复程序,我进行了以下更改。有点hacky,但它有效:

首先,我更改了返回 ActionResult 的内部函数,以便它还将片段添加为路由值(不理想但有效):

然后在视图中,它将该片段值从路由字典中复制出来,然后删除该路由值以确保完整性。

我确信有一种更漂亮的方法可以用 ActionResult 返回片段,但目前这可行。谢谢大卫。