1

我正在开发一个 mvc 4 应用程序,我即将完成。我有两个控制器。

 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 事件,并向 Details 控制器操作发送 AJAX 请求,发送当前项目 ID,然后在#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 回答