0

アプリの 1 つに単純なリストビュー/詳細ビュー機能を実装しようとしています。アイテムのリストを表示するために、MVCContrib Grid (これはすばらしい!) を使用しています。グリッドの各行の横に編集リンクがあり、ユーザーはアイテムを編集できます。ユーザーが編集リンクをクリックすると、アイテムの編集に使用される詳細フォームを返す Get を実行します。何らかの理由で、クリックされた customerId をコントローラーに送信することができません。編集リンクをクリックするたびに、コントローラーが null になります。

私のグリッドは次のように構成されています:

  Html.Grid(Model.CheckAccounts)
    .Columns(column.For(c => {Html.ActionLink(
    "Edit", 
    "CustomerDetails", 
    "CustomerManagementController", 
    new {Id=customer.Id}));
column.For(c => c.Name);
column.For(a => c.AccountNumber);
}).Render();

これが私のコントローラーアクションです:

  [HttpGet]
        public ActionResult CustomerDetails(long? Id )
        {
            //fetch the customer from repo...
            //return it to the client
            return View(model);
        }

私が見たすべてのサンプルとブログは、私が行っているのと同じ方法でグリッドからデータにアクセスしているので、私は完全に混乱しています。誰か助けてくれませんか?

4

1 に答える 1

0

私は自分の質問に答えるのが嫌いですが、アクションリンクを次のように変更することでこれを修正できました:

{Html.ActionLink(
        "Edit", 
        "CustomerDetails", 
        "CustomerManagement", 
        new {Id=customer.Id}));

URL の末尾にある "?Length=24" queryString パラメータを確認したところ、間違ったアクション リンクが生成されていることに気付きました。

現在、グリッドは期待どおりに機能しています。

于 2012-03-27T20:37:06.503 に答える