2017-05-09 9 views
0

を使用してビューからのパスパラメータ私は現在、別の観点からナビゲート次のリンクがあります。ASP.Net MVC - のhref

"<td class='EmployeeTableTD'><a href='personDetails'>" + item.Name + " " + item.Surname + "</a></td>" + 

テーブルを動的にJavaScriptで作成され、データ(項目)を取得していますADOモデルから。

パラメータをコントローラに渡してから、次の画面のビューに渡します。

私は方法の通常の

'personDetails?myParameter=' + item.Name 

タイプを取って試してみましたが、これは404エラーが発生しました。また、@ HTML.ActionLinkをコードに挿入しようとしましたが、パラメータを設定しようとするとintellisenseが 'item'を認識しないため、これも問題です。

このビューリンクから次のコントローラ/ビューに動的パラメータを渡す方法はありますか?

コントローラー:

using System; 
... 
namespace techTest4.Controllers 
{ 
    public class HomeController : Controller 
    { 
     private TechTestEntities techContext = new TechTestEntities(); 

     public ActionResult personDetails() 
     { 
      return View(); 
     } 

     public ActionResult Index() 
     { 
      return View(); 
     } 

は、だから私のナビゲーションが正しく「ホーム/ personDetails」と「personDetails.cshtml」ビューになります(まだそれに少しを持っていますが、出力に渡されたパラメータを必要とします)。間違いなく、次のページの設定が処理される 'Home/personDetailsController/{someIndexMethod}'に移動する必要があります。

設定:

routes.MapRoute(
       name: "Details", 
       url: "PeopleDetails/{action}/{id}", 
       defaults: new 
       { 
        controller = "PeopleDetails", 
        action = "All", 
        id = UrlParameter.Optional 
       } 
      ); 
+0

はあなたが私達にあなたのコントローラを表示することができますか? – DCruz22

+0

あなたが移動しようとしているコントローラーとメソッド名は何ですか? –

+1

'personDetails'メソッドはパラメータを取っていません。 –

答えて

2

あなたはあなたのアクションで受信しているパラメータを指定する必要があります。

public ActionResult personDetails(String myParameter) 
{ 
    return View(); 
} 
+0

ありがとう、そうですが、この修正プログラムが適用されている場合、通常の 'methodName?parameters ='ソート方法を使用できますか? – peanut

+0

はい、アクションのパラメータが不足しているため、ブラウザはどのビューをレンダリングするかを正確には認識していませんでした。 – DCruz22