我目前在頁面/Customer/Edit/13244
上。Url.Action返回瀏覽器中的當前鏈接
當我在同一頁面上使用@Url.Action("Edit", "Customer")
時,它返回我/Customer/Edit/13244
,但我希望它返回/Customer/Edit/
。
請告訴我如何解決這個問題。
我目前在頁面/Customer/Edit/13244
上。Url.Action返回瀏覽器中的當前鏈接
當我在同一頁面上使用@Url.Action("Edit", "Customer")
時,它返回我/Customer/Edit/13244
,但我希望它返回/Customer/Edit/
。
請告訴我如何解決這個問題。
您需要使用您使用默認路由(假設與id = UrlParameter.Optional
@Url.Action("Edit", "Customer", new { id = "" })
是的,我目前正在使用你建議的,但我認爲這不是一個適當的解決方案:P –
你需要這樣做,因爲值通過UrlHelper自動添加到路由參數 –
@WaqarAhmed有時你需要調整適當的解決方案 –
這是MVC的「功能」,很多人覺得不自然和was previously reported as a bug
微軟官方迴應:
最終,如果您想要最大限度地控制爲URL生成的內容,可以考慮幾個選項:
- 使用已命名的路線,以確保只有您想要的路線會習慣產生的URL(這往往是一個很好的做法,但它不會在這個特定的情況下幫助)
- ,指定所有的路由參數明確地 - 甚至是你想要的空值。這是解決這個特殊問題的一種方法。
- 您可以使用Razor的〜/語法或調用Url.Content(「〜/ someurl」)來確保您嘗試的URL不會發生額外(或意外)處理,而不是使用路由來生成URL生成。
其實,當您試圖重新目的的動作方法名這個錯誤只撫養它醜惡的頭。如果在Edit
以外的其他操作方法名稱不使用id
,則此問題將奇蹟般消失。
爲什麼你需要看控制器代碼? –
你不想在url中使用id? –