2012-04-24 17 views
1

2つの@Html.ActionLinkの作品がありますが、1つではありません。@ Html.ActionLink 1つが動作していません

彼らは、同じコントローラ以内です: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>   
} 

これは、動作しない1:

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

}

これはStoreController内でCheckController内の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) 

のようにそれを使用して最後のパラメータは、HTML属性です

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属性を渡すと、nullの代わりに値が渡されます。

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

あなたの答えには私と同じエラーがあります:名前の項目が現在のコンテキストに存在しませんか? – Spangle

+0

@Spangle:エラーが表示されますか?あなたはデフォルトルートよりもカスタムルート定義を持っていますか? – Shyju

+0

あなたの答えは正しい私は自分のページを変更したことがあるかもしれないが、ちょうど微調整が必​​要なことがあるかもしれない! – Spangle

関連する問題