0

次の方法でいくつかのdivブロックを更新したい->
更新のビュー:

    @Ajax.ActionLink("Show",
             "About",
             new AjaxOptions
             {
                 HttpMethod = "POST",
                 InsertionMode = InsertionMode.Replace,
                 UpdateTargetId = "updateMe"
             })
     <div id="updateMe"> </div>

私のコントローラー:

    int count  = 0;

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

    [HttpPost]
    public ActionResult About()
    {

        if (Request.IsAjaxRequest())
        {   
            count++;
            ViewBag.count  = count;
            return PartialView();
        }
        return RedirectToAction("Index");
    }

私のPartialView:

    <h1>Hellow from Partial View !  @ViewBag.count </h1>

また、これは.configファイルにあります

      <add key="UnobtrusiveJavaScriptEnabled" value="true" />

および参照ライブラリ:

<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

予想:最初のクリック:
部分ビューからのこんにちは!1

2番目:
部分ビューからこんにちは!2

持っている:部分ビューからこんにちは!1

4

1 に答える 1

2

Controllerクラスはリクエストごとに再度初期化されるため、フィールドの値は毎回count再初期化されます。これを「グローバルに」持ちたいと思うでしょう。static1つの方法は、フィールドとして定義することです。ただし、これには予期しない動作が発生する可能性があることに注意してください(ASP.NET MVCの静的フィールドなど)。

于 2012-07-24T15:39:21.717 に答える