2012-04-24 29 views
1

我有兩個@Html.ActionLink的一個作品,一個沒有,我不明白爲什麼?@ Html.ActionLink一個作品,一個不

他們都是在同一個控制器內:StoreController和不同的控制器內的兩個呼叫ActionResults,這是工作,並呼籲處長類中的索引功能之一:

<ul> 
@foreach (var item in Model) 
{ 
    <li> 
    <h2>@item.Title</h2> 
    </li> 
    <li class = "lihead"> 
    Directed by 
    @Html.ActionLink((string)item.Director.Name, "Index", "Director", new { searchString = item.Director.Name }, null) 
    </li> 
    <li> 
    <i>@item.Synopsis</i> 
    </li> 
    <li class = "lihead"> 
    Price per ticket £ 
    @item.Price 
    </li>   
} 

這是一個不工作:

@foreach (var item in Model) { 
     @Html.ActionLink("Check Availability", "CheckAvail", "Booking", new { id = item.ShowId }) 

}

當我希望它調用BookingController中的CheckAvail函數時,此函數在StoreController中調用。然而,它確實工作,當我修改它如此:

@foreach (var item in Model) { 
     @Html.ActionLink("Check Availability", "CheckAvail", "Booking")} 

但我需要它通過ShowId函數?

回答

2

使用方法如下

@Html.ActionLink("Check Availability", "CheckAvail", "Booking", new { @id = item.ShowId },null) 

它使用此重載

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    Object routeValues, 
    Object htmlAttributes 
) 

http://msdn.microsoft.com/en-us/library/dd504972.aspx

的最後一個參數是HTML屬性。如果你有一些HTML屬性附加傷害傳遞,你通過它的存在,而不是空

@Html.ActionLink("Check Availability", "CheckAvail", "Booking", new { @id = item.ShowId },new { @class="myCssClass"}) 
+0

你的答案是讓相同的錯誤礦:名稱項目不在目前情況下是否存在? – Spangle 2012-04-24 13:37:23

+0

@Spangle:你是否收到錯誤?你有自定義的路由定義嗎? – Shyju 2012-04-24 13:39:01

+0

您的回答是正確的我改變了我的網頁有些時候可能只是需要一些調整! – Spangle 2012-04-24 13:41:46

相關問題