gpt4 book ai didi

asp.net-mvc - T4MVC:如何与 say Url.Action 一起使用?

转载 作者:行者123 更新时间:2023-12-02 22:28:20 24 4
gpt4 key购买 nike

T4MVC 文档提示我们可以编写

   @Url.Action(MVC.Dinners.Delete(Model.DinnerID))

而不是老式的字符串硬编码

   @Url.Action("Delete", "Dinners", ...))

(见附图)

enter image description here

也许我严重遗漏了一些东西,但第一个版本实际上会调用 Controller 的操作方法,这显然不是目标+有副作用。我已经使用 resharper 静态地跟踪了方法调用,并且还进行了调试:该方法实际上被调用了,这(再次)不是目标。

确实,Url.Action 具有接受 ActionResult 的重载,这就是 T4MVC 版本不会导致编译错误的原因。如果可以调用操作方法而不会对正确呈现的网址产生副作用,情况也是如此。

我的目标是在 View 中呈现操作 URL,换句话说,我真的在寻找 @Url.Action("Delete", "Dinners", ...)) 的替代方案 .

这是我发现的:

 @Url.Action(MVC.Dinner.ActionNames.Delete, MVC.Dinner.Name)

我错过了什么? (为什么我们要调用实际的操作方法,只是为了呈现它的 url?)

最佳答案

那是致命的。我在问题中描述的一切都是真实的,但它仍然是错误警报。

我的操作方法的返回值是字符串。请不要问为什么,它是完全合法的,并且逻辑上该方法是无效的(从javascript调用为POST,并且响应被忽略)

该字符串返回值欺骗了 T4MVC 生成器,因此该方法实际上是由 @Url.Action(MVC.Dinners.Delete(Model.DinnerID)) 调用的

将方法的返回值更改为 ActionResult(并且不执行任何其他操作)后,T4MVC 生成的代码发生更改,并且不再调用操作方法

关于asp.net-mvc - T4MVC:如何与 say Url.Action 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30108273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com