1

@ Html.ActionLinkの1つは機能し、もう1つは機能せず、理由がわかりません。

これらは両方とも同じコントローラー内にあります。StoreControllerと両方が異なるコントローラー内でActionResultsを呼び出します。これは、Directorクラス内で機能してIndex関数を呼び出すものです。

<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を介して関数に移動する必要がありますか?

4

1 に答える 1

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属性がある場合は、nullの代わりにそこに渡します

@Html.ActionLink("Check Availability", "CheckAvail", "Booking", new { @id = item.ShowId },new { @class="myCssClass"} )
于 2012-04-24T13:28:51.790 に答える