2016-10-21 16 views
0

したがって、1対多の関係を持つ2つのモデルがあります。コールアウト、およびシフトオファー。吹き出しは多くのシフトオファーを持つことができます。asp.netは異なるコントローラのビュー間でidを渡します。

私のcallout_idをshift-offerコントローラに渡したいとします。次のように私は、インデックス()メソッドを変更することでこれをやった:

public async Task<ActionResult> Index(long? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
      Debug.WriteLine("Callout ID cannot be null"); 
     } 
     var shift_Offers = db.Shift_Offers.Where(s => s.callout_id_fk == id); 
     return View(await shift_Offers.ToListAsync()); 
    } 

私はまた別のページを呼び出すために私のHTMLアクションのリンクのいずれかを変更した:

@Html.ActionLink("View Callout", 
       "Index", 
       "ShiftOffer", 
       new { area = ""}, 
       new { id=item.callout_id_pk }) | 

しかし、ここではキッカーです、私はインデックス(長いID)を呼び出すしようとすると、その悪い要求のエラーを投げている。私のIDがデフォルトの足場のリンクのように渡されないのはなぜですか?

+1

の下に試してみてください? –

+0

MVC 5 Asp.net 4.6.1 –

答えて

1

あなたはMVCの版ãを使用している

@Html.ActionLink("View Callout", 
       "Index", 
       "ShiftOffer", 
       new { id=item.callout_id_pk }, 
       new { area = ""}) 
+0

トリックをやった!なぜそれがそれを行うのだろうか? –

+0

どうやら、ありがとう! –

+1

引数として渡されたときのhtmlArgumentsに対する優先順位の値のルーティング。 ActionLinkリファレンスを検索します。 –

関連する問題