2012-05-24 54 views
1

我有一個觀點有些剃刀代碼,通過應該路由到我的模型中的不同部分:意外HTML從剃刀

@Html.ActionLink("Edit", "Edit", "Journal", new { id = item.JOURNAL.REF_ID }) 

,但是當我看着被emmitted的HTML,它是不不反映我寫的內容:

<a href="/Reference/Edit?Length=7" id="25750">Edit</a> 

我該如何阻止這種情況的發生?

回答

4

這是因爲您使用了錯誤的超載。它應該是這樣的:

@Html.ActionLink("Edit", "Edit", "Journal", new { id = item.JOURNAL.REF_ID }, null) 

讓我們來看看爲什麼使用錯誤的過載。讓我們來分解一下你寫的內容:

@Html.ActionLink(
    "Edit",        // linkText 
    "Edit",        // actionName 
    "Journal",       // routeValues 
    new { id = item.JOURNAL.REF_ID }  // htmlAttributes 
) 

看到問題了嗎?

現在,讓我們打破了正確的方法:

@Html.ActionLink(
    "Edit",        // linkText 
    "Edit",        // actionName 
    "Journal",       // controllerName 
    new { id = item.JOURNAL.REF_ID }, // routeValues 
    null         // htmlAttributes 
) 

看到區別?

我會建議你仔細閱讀文檔和幫助ActionLink幫助different available overloads以及其參數的確切意義。

+0

你說得對 - 其實我應該RTFM!我認爲目前我只是想讓事情奏效,閱讀教程和觀看視頻,但有時我會錯過更好的細節。 – Vidar