2015-09-22 31 views
1

我目前在頁面/Customer/Edit/13244上。Url.Action返回瀏覽器中的當前鏈接

當我在同一頁面上使用@Url.Action("Edit", "Customer")時,它返回我/Customer/Edit/13244,但我希望它返回/Customer/Edit/

請告訴我如何解決這個問題。

+0

爲什麼你需要看控制器代碼? –

+0

你不想在url中使用id? –

回答

2

您需要使用您使用默認路由(假設與id = UrlParameter.Optional

@Url.Action("Edit", "Customer", new { id = "" }) 
+0

是的,我目前正在使用你建議的,但我認爲這不是一個適當的解決方案:P –

+0

你需要這樣做,因爲值通過UrlHelper自動添加到路由參數 –

+0

@WaqarAhmed有時你需要調整適當的解決方案 –

3

這是MVC的「功能」,很多人覺得不自然和was previously reported as a bug

微軟官方迴應:

最終,如果您想要最大限度地控制爲URL生成的內容,可以考慮幾個選項:

  1. 使用已命名的路線,以確保只有您想要的路線會習慣產生的URL(這往往是一個很好的做法,但它不會在這個特定的情況下幫助)
  2. ,指定所有的路由參數明確地 - 甚至是你想要的空值。這是解決這個特殊問題的一種方法。
  3. 您可以使用Razor的〜/語法或調用Url.Content(「〜/ someurl」)來確保您嘗試的URL不會發生額外(或意外)處理,而不是使用路由來生成URL生成。

其實,當您試圖重新目的的動作方法名這個錯誤只撫養它醜惡的頭。如果在Edit以外的其他操作方法名稱不使用id,則此問題將奇蹟般消失。

相關問題