2012-04-16 12 views
1

私は(のActionResult詳細を持っている)@HtmlActionLinkをこの状況に適用できますか、それとも何か他のものを使用する必要がありますか?

// RETREIVE THE INDIVIDUAL DETAILS SHOWS 
    public ActionResult Details(int id) 
    { 
     var item = from s in db.Shows.Where(si => si.ShowId == id) select s; 

     return View(item); 
    } 
} 

更新ULは現在、以下の通りである。

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

私は、文字列を受け取るために、インデックスメソッドを更新しました:

public ActionResult Index(string director) 
    { 
     return View(); 
    } 
+0

ディレクター名は、クエリ文字列ではなくHTML属性として表示されていますが、正しいですか? – Tejs

答えて

2

はあなたがHtmlAttributesとしてRouteValuesに渡している今、この1

@Html.ActionLink(item.Director.Name.ToString(), "Index", "Director", new { director = item.Director.Name }, null) 

を試してみてくださいHtml.ActionLink

のための間違ったオーバーロードを使用しています。最後の余分なヌルは正しいものを呼び出します。

元の投稿は削除されましたが、directorプロパティのディレクター名も渡していますが、あなたの方法はint idです。あなたもそれを修正する必要があります。

+0

私はnullでActionLinkを試しても動作しません。今は14のエラーがあり、最初はhtmlヘルパーの使用を指しています:エラー 'System.Web.Mvc.HtmlHelper 'には、 'ActionLink'ではなく、その名前で拡張メソッドがあるようです。拡張メソッドを動的にディスパッチすることはできません。動的引数をキャストするか、拡張メソッド構文を使用せずに拡張メソッドを呼び出すことを検討してください。 – Spangle

+0

@Spangleでは、Direct.Nameに型があるか、動的型ですか?文字列としてキャストしてみてください。 '(文字列)item.Director.Name' – Brandon

+0

(文字列)item.Director.Nameがいくつかのエラーを取り除きました。次のエラーは、" Director "の後に開いた括弧を閉じる必要があることを伝えています。 aを挿入する。しかし、これは、それがすべきであることをより早く終了させるだろう。私が最後に文字列にキャストしたとき、少し異なったitem.Director.Name.toString() – Spangle

関連する問題