jquery - 部分 View 渲染的 UI 问题

标签 jquery ajax asp.net-mvc

下面的 Ajax 操作链接调用 Controller 操作并在分部 View 中返回结果。问题是,我多次点击操作链接“学术详细信息”,它会再次生成结果和具有部分 View 的 div。我想阻止这种情况。

您能建议任何简单的 jQuery Tab View 来解决这个问题吗?我已经使用过一个,但每次点击链接时它都会触发 Controller ,无论它是否适用于普通 DIV。

@Ajax.ActionLink(
    "Academic Details",
    "GetAcademicInfo",
    "Employee", new { empId = Model.Id },            
    new AjaxOptions { UpdateTargetId = "AcademicDetails", InsertionMode = InsertionMode.InsertBefore },
    new { @id = "AcademicDetailsLink" }
)

最佳答案

您可以做的一件事是为每个 ajax 链接设置一个具有特定 id 的 div 并使用 InsertionMode = InsertionMode.Replace。例如

@Ajax.ActionLink(
    "Academic Details",
    "GetAcademicInfo",
    "Employee", new { empId = Model.Id },            
    new AjaxOptions { UpdateTargetId = "AcademicDetails", InsertionMode = InsertionMode.Replace},
    new { @id = "AcademicDetailsLink" }
)
<div id="AcademicDetails"></div>

@Ajax.ActionLink(
    "Other Details",
    "GetOtherInfo",
    "Employee", new { empId = Model.Id },            
    new AjaxOptions { UpdateTargetId = "OtherDetailsDivId", InsertionMode = InsertionMode.Replace},
    new { @id = "OtherDetailsLinkId" }
)
<div id="OtherDetailsDivId"></div>

如果您想在每次点击时显示和隐藏其他 div,请按照以下方法使用 jQuery:

<script>
$('#AcademicDetailsLink').click(function(){
  $('#OtherDetailsDivId').hide();
  $('#AcademicDetails').show();
});

$('#OtherDetailsLinkId').click(function(){
  $('#OtherDetailsDivId').show();
  $('#AcademicDetails').hide();
});
</script>

您必须对每个链接执行此操作。

关于jquery - 部分 View 渲染的 UI 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963079/

相关文章:

asp.net-mvc - 如何在 ASP.NET MVC 中分解 Controller ,同时保留 Controller 名称?

javascript - 禁止用户输入内容

ajax - Internet Explorer 在 window.open 和 AJAX 调用上调用 window.onbeforeunload

javascript - console.log JSON 数据?

c# - 在某些条件下禁用 mvc3 客户端验证

c# - html.dropdownlist 的 onchange 事件

jquery命名空间: how to pass default options from one method to the subsequence methods?

jQuery - 将事件附加到动态元素

jQuery Live 正则表达式检查

javascript - AJAX 刷新、setInterval 计时和本地主机崩溃