簡體   English   中英

T4MVC:如何使用說Url.Action?

[英]T4MVC: How to use with say Url.Action?

我們可以編寫T4MVC文檔提示

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

代表老式和字符串硬編碼

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

(見附圖)

在此輸入圖像描述

也許我嚴重缺少一些東西,但第一個版本實際上會調用控制器的動作方法,顯然不是目標+有副作用。 我已經使用resharper靜態跟蹤方法調用,並且還調試了:實際上調用了該方法,其中(再次)不是目標。

Url.Action確實具有接受ActionResult的重載,這就是為什么T4MVC版本不會導致編譯錯誤的原因。 如果可以在沒有副作用的情況下調用操作方法,則正確呈現的URL也是如此。

我的目標是在視圖中渲染動作URL,換句話說,我真的在尋找@Url.Action("Delete", "Dinners", ...))的替代方案。

這是我發現的:

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

我錯過了什么? (為什么我們會調用實際的動作方法,只是為了渲染它的url?)

那是致命的。 我在問題中所描述的一切都是真的,仍然是虛假警報。

我的action方法的返回值是string 請不要問為什么,它是完全合法的,邏輯上該方法是無效的(從javascript調用POST,並忽略響應)

該字符串返回值欺騙了T4MVC生成器,因此該方法實際上是由@Url.Action(MVC.Dinners.Delete(Model.DinnerID))

將方法的返回值更改為ActionResult(並且不執行任何其他操作)后,T4MVC生成的代碼將更改,並且不再調用操作方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM