Asp.net mvc 如何在单击链接时渲染局部视图
我有一个包含信息的表,我想点击link(这是一个引导gliphycon),当我点击这个链接时,我想在一个引导模式中呈现一个局部视图,其中包含关于这个列表项的所有信息 我的控制器Asp.net mvc 如何在单击链接时渲染局部视图,asp.net-mvc,twitter-bootstrap-3,Asp.net Mvc,Twitter Bootstrap 3,我有一个包含信息的表,我想点击link(这是一个引导gliphycon),当我点击这个链接时,我想在一个引导模式中呈现一个局部视图,其中包含关于这个列表项的所有信息 我的控制器 public PartialViewResult Details(int id) { try { return PartialView("Details", _paisRepository.GetDetails(id));
public PartialViewResult Details(int id)
{
try
{
return PartialView("Details", _paisRepository.GetDetails(id));
}
catch (Exception)
{
ViewBag.error = "Não foi possivel buscar os dados!";
return PartialView("Error");
}
}
我调用将数据返回到modal的action方法:
<a href="/Pais/Details/@item.ID">
<div class="glyphicon glyphicon-search" style="cursor:pointer"></div>
</a>
以及引导模式
<div class="modal" id="exibirPais" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">
<span class="glyphicon glyphicon-search"></span>
<label class="control-label">Exibir</label>
</h4>
</div>
<div class="modal-body">
@Html.Partial()
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger">Fechar</button>
</div>
</div>
</div>
</div>
&时代;
埃希比尔
@Html.Partial()
粪便
您应该监听这个a标记上的click事件,并使用ajax向服务器操作方法发出请求,并使用返回的响应构建模式对话框
因此,在主视图中,当呈现a标记时,可以将href值设置为操作方法的url路径
<table>
@foreach (var item in SomeCollection)
{
<tr>
<td>
<a href="@Url.Action("Details",new {id=item.Id})" class="modal-link">
<div class="glyphicon glyphicon-search" style="cursor:pointer"></div>
</a>
</td>
</tr>
}
</table>
此代码将使用来自详细信息
操作方法的部分视图结果替换模态的全部内容。这意味着(使用按钮)在Details.cshtml
部分视图中。首先:
向glyphicon添加javascript函数调用并发送当前对象项ID
<span class="glyphicon glyphicon-search" style="cursor:pointer" data- onclick="ShowDetails('@item.id')"></span>
javascript中的单击事件
$("#exibirPais").load('@Url.Action("PartialViewResult", "Controller_Name")');
注意:PartialView结果必须返回PartialView(模型);
和.cshtml页面部分页面您需要ajax调用服务器方法,该方法返回部分内容并在成功回调中更新DOM。本文解释了具体用例的解决方案。我阅读了你的帖子@Shyju,我不会使用Html.partial来呈现部分视图,我会使用我的javascript函数?你的js代码对你的操作方法进行ajax调用,该方法返回部分视图结果(最终为纯Html),并将其用于模态对话框。
<div class="modal" id="exibirPais" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">
<span class="glyphicon glyphicon-search"></span>
<label class="control-label">Exibir</label>
</h4>
</div>
<div class="modal-body" id="Body">
@* Body where the partial view will be rendered using AJAX*@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger">Fechar</button>
</div>
</div>
</div>
function ShowDetails(Id) {
$("#exibirPais").modal();
$.ajax({
url: '/Controller/Details/' + Id,
success: function(result) {
$('#Body').html(result);
}
});
}
$("#exibirPais").load('@Url.Action("PartialViewResult", "Controller_Name")');