1

私は mvc 4 アプリケーションを開発しています。私はそこに2つのコントローラーを持っています。

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


    public ActionResult ResourceDetails(int id = 1)
    {
        ResourceItems re = new Resources().GetResDetails(id);
        return View(re);
    }

ResourceDetails は部分的なビューページです。

 @model ....Models.ResourceItems
  <div>
   @Html.Raw(@Model.Res_Details)
 </div>

とインデックスページが含まれています

 @model IEnumerable<.....Models.ResourceItems>
      <ul id="res">
   @foreach(var Item in Model)
    {
        <a href="~/Resources/ResourceDetails/@Item.Id" ><li>@Item.Res_NA</li></a>
    }
</ul>
<div id="rescontent">

</div>

IDに基づいて部分ページをdiv "rescontent"にロードしたい。デフォルトの Id は 1 です。

4

1 に答える 1

2

AJAX を使用できます。

@model IEnumerable<Puthencruz.Rotary.Club.Models.ResourceItems>
<ul id="res">
    @foreach(var item in Model)
    {
        <li>
            @Html.ActionLink(
                item.Res_NA, 
                "ResourceDetails", 
                "Resources", 
                new { id = item.Id }, 
                new { @class = "detail" }
            )
        </li>
    }
</ul>

<div id="rescontent">

</div>

次に、別の JavaScript ファイルで、jQuery を使用してアンカーの .click イベントをサブスクライブし、現在のアイテム ID を送信する Details コントローラー アクションに AJAX 要求を送信し、結果を#rescontentdivにレンダリングします。

$(function() {
    $('.detail').click(function() {
        $('#rescontent').load(this.href);
        return false;
    });
});

また、コントローラーのアクションから、部分ビューを返していることを確認してください。

public ActionResult ResourceDetails(int id = 1)
{
    ResourceItems re = new Resources().GetResDetails(id);
    return PartialView(re);
}
于 2013-07-16T08:15:15.690 に答える