0

、こんにちは、みんな、

json.İf を使用しようとしています。部分ビューに戻ります。顧客セッションに foreach を使用できません。顧客セッションに顧客がいます。一覧表示できません。どこが恋しいですか?

CONTROLLER:

public ActionResult ShowResult(MyModel model)
{
Session["CustomerList"] = context.Customer.Where(s => s.CustomerSituation== true).ToList(); // Customers List To Session
var stringView = RenderRazorViewToString("_ShowResultPartial", model);
return Json(stringView, JsonRequestBehavior.AllowGet);
}

.

My _ShowResultPartial View:
@foreach (var item in (List<Q502351.Models.Customer>)Session["CustomerList"])
{
Ajax.ActionLink(item.CustomerName, "ShowResult", new { CustomerId = item.CustomerId}, new AjaxOptions { HttpMethod = "POST" });
}
4

1 に答える 1

1

投稿した内容から、顧客リストをセッションに保存する理由が明確ではありません。ビューのデータは通常、ビュー モデルに格納する必要があります。セッションを使用するやむを得ない理由がある場合でも、コントローラーでセッション変数を取得し、ビュー モデルに格納することをお勧めします。次に、ビューからモデルのリストをループできるはずです。この状況では、セッションはまったく必要ないように見えます (保存されたデータを後で再利用するつもりで、何らかの理由でモデルを介して渡すことができない場合を除きます)。

また、json を返す正当な理由がない限り、ShowResult コントローラー メソッドは PartialView を返す必要があります。

このようなものはうまくいくはずです...

コントローラ:

public ActionResult ShowResult(MyModel model)
{
    model.Customers = context.Customer.Where(s => s.CustomerSituation == true).ToList();
    return PartialView("_ShowResultPartial"), model);
}

部分的なビュー:

@model MyModel

@foreach (var item in Model.Customers)
{
    Ajax.ActionLink(item.CustomerName, "ShowResult", new { CustomerId = item.CustomerId}, new AjaxOptions { HttpMethod = "POST" });
}
于 2013-09-18T21:56:57.427 に答える