[英]Rendering a view with HtmlHelper and Partial Page in ASP.Net MVC3
[英]Why partial view not rendering in the same page? (ASP.NET MVC 4)
我在显示部分视图时遇到了问题。
//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。 每当我单击“学术详细信息”链接时,它都会执行准确的结果。 但不幸的是,它没有显示在同一页面上。 它会出现在另一个页面中。 (其MVC 4)
我需要更改什么以在同一页面上呈现局部视图?
如果您要重定向到新页面而不是停留在同一页面上,则意味着未加载jquery.unobtrusive-ajax.js
并且@Ajax.ActionLink()
退回到正常链接。
你要么有
jquery{version}.js
) 尝试使用JQuery Ajax将部分视图加载到按钮/链接单击页面上的Div中。
var jsondata = { Id: iddata };
$.ajax({
url: "/Controllername/GetAcademicInfo",
method: "POST",
dataType: "html",
data: jsondata,
success: function (response) {
$("#divId").html(response);
}
});
请注意,这只是一个示例代码,旨在为您提供一个想法。
希望有帮助!
也许您可以使用jquery的.load()函数? 像这样。
$("divId").load('@url.action("getacademicInfo")', {empId : 4});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.