2016-10-27 5 views
0

のインデックスメソッドに私がクリックしたときに、私は別のコントローラのindexメソッドにIDを渡すと、そのコントローラのindexページASP.Net MVC5 Html.ActionLink異なるコントローラ

 <td> 
     @Html.ActionLink("View Staff", "Index", "StaffController" , new { id = item.UnitCode }) | 
にユーザーをしたいActionLinkのを持っています

しかし私は、このリンクをクリックすると、簡単なページが同じままで、/Staff/Index/theUnitId

ようにクリックされたとき、私は、URLをしたい/Units?Length=15

へのURLの変更は、誰かが私を助けることができますか?

答えて

2

あなたの呼び出しがヘルパーメソッドの間違ったオーバーロードに一致していると思います。書かれたよう

、このシグネチャにマッチする:何コントローラがそこに存在しない

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

注意。

代わりにこれを試してみてください:

コントローラと右の署名と一致している必要があり
@Html.ActionLink("View Staff", "Index", "Staff" , new { id = item.UnitCode }, null) 

:あなたのコントローラがStaffControllerController命名されていない限り、

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

コントローラのクラス名が 'StaffControllerController'でない限り、適切なトラック上で" Controller "は' controllerName'パラメータの一部ではありません。 – jmoerdyk

+0

ああ、愚かな私、私はまた、 "StaffController"を単に "スタッフ"に変更しなければなりませんでした。どうもありがとうございます! =) –

+0

はい、ありがとうございます@jmoerdyk。私はちょうど彼が持っていたものをコピーして貼り付けた。ここでのマルチタスキング。私は答えを編集します! – JuanR

1

は、まずお使いのコントローラ名

をチェックのコントローラパラメータの名前を調整したいと思うでしょうヘルパーメソッド:

@Html.ActionLink("View Staff", "Index", "Staff", ...); 

また、the overload that you are attempting to useは下図のようにnullを指定できhtmlAttributesパラメータ、一緒に(使用している)RouteValuesパラメータの両方を必要とする適切な過負荷の引数を確認してください

@Html.ActionLink("View Staff", "Index", "Staff" , new { id = item.UnitCode }, null) 
0

私はこれがanswerだと思います。

ASP.NET MVC3 +

MVC2が、しかし、id値は、もはや必要 あると引数は同じ順序でない:

​​
言うASP.NET MVC3 +セクションを参照してください

このメソッドで正しいオーバーロードが指定されていないようです。

@Html.ActionLink("View Staff", "Index", "StaffController" , new { id = item.UnitCode }, null) 

ないhtmlArgumentsがnullである必要があり、最後の引数:まず

は、以下の引数を指定して、アクションのリンクをご利用ください。

第2に、コントローラの名前を表す第3引数yuor linkが間違っている可能性があります。コントローラクラスの名前が "StaffController"の場合、yuoは "StaffController"ではなく "Staff"という引数を使用する必要があります。

第3に、異なるRouteConfigクラスのルーティングの設定によって問題が発生する可能性があります。

+0

答えとしてリンクを掲示する代わりに、この回答が現在の問題を修正する際にOPにどのように役立つか説明にテキストを追加してください。 – Marusyk

関連する問題