0

ASP.NET MVC4 アプリケーションに 2 つの partialViews があります。

[HttpGet]
public ActionResult Autocomplete_Search(string accountHead, List<LedgerModel> ledge)
{
    if (!String.IsNullOrEmpty(accountHead)) {
        ledge = (from u in db.LedgerTables
                 where u.AccountHead.Contains(accountHead) && u.FKRegisteredRecord == this.LoggedInUser.RegisterID
                 select new LedgerModel {
                     AccID = u.AccID,
                     Place = u.Place,
                     AccountHead = u.AccountHead,
                     DateAccountHead = Convert.ToDateTime(u.DateAccountHead) != null ? Convert.ToDateTime(u.DateAccountHead) : DateTime.Now

                 }).ToList();
        return RedirectToAction("_ProductSearchList", ledge);

    }
    return View();
    //return Json(ledge, JsonRequestBehavior.AllowGet);
}

と-

public ActionResult _ProductSearchList(List<LedgerModel> ledge) {
            List<LedgerModel> ledger = null;
            if (ledge != null) {
                ledger = (from u in ledge
                         select new LedgerModel {
                             AccID = u.AccID,
                             Place = u.Place,
                             AccountHead = u.AccountHead,
                             DateAccountHead = Convert.ToDateTime(u.DateAccountHead) != null ? Convert.ToDateTime(u.DateAccountHead) : DateTime.Now

                         }).ToList();

                return PartialView(ledge);
            }
            else {
                return PartialView(ledge);
            }
        }

さて、テキストボックスを介して文字列を送信すると、アクションAutoComplete_Searchが呼び出されます。という名前の別のメソッドへのリダイレクト時に、このメソッドに listType_ProductSearchListのオブジェクトを送信しています。ledgeしかし、アクションのパラメーターにはledgenullと書かれています。_ProductSearchList

ただし、このオブジェクトはリスト タイプであり、レコードが含まれています。ledgeアクションにリダイレクトされるこのオブジェクトを取得するにはどうすればよい_ProductSearchListですか?

4

3 に答える 3

1

最初に、Autocomplete_Search の get リクエストで List ledge を取得できません。

リダイレクトで複雑なオブジェクトを渡すことはできません。単純なスカラー値のみを渡すことができます。

このスレッドで回答を確認してください:

アクション間でデータを送信するには、redirectAction と prg パターンを使用します

于 2013-10-20T18:56:46.230 に答える
0

この問題についてお時間を割いていただき、ありがとうございます。

@Damian Sが説明し たようcomplex object redirectingに、私にとって注目すべきアドバイスです。

ただし、この問題の最も簡単な解決策を .NET で使用することができDataDictionaryましたC#

TempData[]最も正確で簡単な方法であるため、私が推測する最も簡単な方法で詳細を保存するために使用して管理しました。

使用するTempData[]

レコードを TempData[] に保存中AutoComplete_Search() controller-

TempData["Records"]= ledge;

ProductSearchListコントローラーでの使用

List<ledgerModel> ledge= (List<ledgerModel>)TempData["Records"];

オブジェクトで遊ぶという私の問題と頭痛を解決methodsしましmethodsた。

于 2013-10-20T19:08:11.513 に答える