2017-07-15 14 views
0

內置的FormTagHelper支持「asp-action」,「asp-controller」,「asp-route」等屬性。他們工作正常。但我不想爲每個表單手動指定它們的值。是否可以根據當前頁面URL自動生成「action」屬性?如何在ASP.NET核心中爲<form>標記生成器生成「動作」方法

看到FormTagHelper的實現後,我看到它使用IHtmlGenerator。當我在我看來手動調用IHtmlGenerator.GenerateForm(this.ViewContext, null,null,null,"post", null)時,它工作得很好。該表格是使用有效的「操作」方法(包括查詢字符串)自動生成的。但是,我能得到與元素相同的結果嗎?

根據這個實現,我需要在FormTagBuilder中調用以下代碼行。但是,隨着「行動」和「控制器」設置爲null

tagBuilder = Generator.GenerateForm(
         ViewContext, 
         Action, 
         Controller, 
         Fragment, 
         routeValues, 
         method: null, 
         htmlAttributes: null); 

但不知道如何做到這一點

附:如果我指定asp-route="",則它會生成「action」元素,但它不包含當前頁面的查詢字符串。

回答

1

看起來像asp-all-route-data="@null"將工作。它看起來很醜,但它起作用。我希望可以有更清潔的解決方案

相關問題