我遇到了部分视图显示的问题。
//This is Controller Action
//_AcademicInfo is the Partial view name
public PartialViewResult GetAcademicInfo(int empId)
{
var acad = _academicService.GetAcademinByEmp(empId);
return PartialView("_AcademicInfo", acad);
}
<!--Parent/caller page cshtml code-->
@Ajax.ActionLink(
"Academic Details",
"GetAcademicInfo",
"Employee", new {empId = Model.Id},
new AjaxOptions {UpdateTargetId = "AcademicDetails", InsertionMode = InsertionMode.InsertAfter}
)
<!--This is partial view cshtml-->
@model IEnumerable<Hik.PhoneBook.Data.Entities.Academic>
<div id="result">
<table>
<tr>
<th>Degree Name</th>
<th>Passing Year</th>
<th>CGPA</th>
<th>Institute</th>
</tr>
@foreach (var acad in Model)
{
<tr>
<td>@Html.DisplayFor(m => acad.DegreeName)</td>
<td>@Html.DisplayFor(m => acad.PassingYear)</td>
<td>@Html.DisplayFor(m => acad.CGPA)</td>
<td>@Html.DisplayFor(m => acad.Institute)</td>
</tr>
}
</table>
</div>
因为我需要通过链接点击来获取局部视图,而不是像@Html.Partial("_AcademicInfo", Model.Academic)
那样直接渲染。这就是我使用Ajax.ActionLink的原因。每当我点击&#34;学术细节&#34;链接,它执行准确的结果。但不幸的是它没有显示在同一页面中。它将出现在另一页。 (其MVC 4)
我需要更改哪些内容才能在同一页面中呈现局部视图?
答案 0 :(得分:2)
如果您要重定向到新页面而不是停留在同一页面上,则表示未加载jquery.unobtrusive-ajax.js
并且@Ajax.ActionLink()
会回退到正常链接。
要么你有
jquery{version}.js
必须来
第一)答案 1 :(得分:0)
尝试使用JQuery Ajax将部分视图加载到按钮/链接点击页面上的Div中。
var jsondata = { Id: iddata };
$.ajax({
url: "/Controllername/GetAcademicInfo",
method: "POST",
dataType: "html",
data: jsondata,
success: function (response) {
$("#divId").html(response);
}
});
请注意,这只是一个示例代码,可以为您提供一个想法。
希望有所帮助!
答案 2 :(得分:0)
也许你可以使用jquery的.load()函数?像这样。
$("divId").load('@url.action("getacademicInfo")', {empId : 4});