在同一视图中加载两个控制器
本文关键字:两个 控制器 加载 视图 | 更新日期: 2023-09-27 18:22:36
我正在开发一个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"resontent"中。默认Id为1。的可能性
您可以使用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,然后在#rescontent
div:中呈现结果
$(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);
}