繁体   English   中英

为什么部分视图无法在同一页面中呈现? (ASP.NET MVC 4)

[英]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()退回到正常链接。

你要么有

  1. 不包括脚本
  2. 脚本顺序错误(必须先使用jquery{version}.js
  3. 您有重复的脚本

尝试使用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});

https://api.jquery.com/load/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM