2012-10-12 83 views
0

我用來保留默認路由,但衝突導致我將默認參數id更改爲paramid更改路由的默認參數名稱

通常情況下,我是用在視圖中這樣的代碼:

@Url.Action("Edit", "Suivis", new {o.ID}) 

而這個控制器:

public ActionResult Edit(int id) { ... } 

但它不工作了,它迫使我使用:

@Url.Action("Edit", "Suivis", new {paramid = o.ID}) 

這是在我的控制器代碼:

public ActionResult Edit(int paramidid) { ... } 

我的問題是:爲什麼我現在必須在視圖中指定參數名稱?

回答

1

在原來的動作:

@Url.Action("Edit", "Suivis", new {o.ID}) 

匿名類型正在使用相同的名稱(ID)創建的。由於你必須改變路由期望從ID的參數到paramid--當你試圖傳遞o.ID,這正在轉化爲新的{ID = o.ID}時,路由不匹配,因爲它是尋找paramid。

如果它是一個視圖模型,你可以改變屬性,以芳族聚酰胺 -

@Url.Action("Edit", "Suivis", new {o.paramid}) 

,它會重新工作 - 但是這可能是更多的麻煩比它的價值。