javascript - 使用 AJAX 渲染 ASP.NET PartialView 不起作用
问题描述
我正在开发一个 ASP.NET MVC Web 应用程序。在剃须刀(cshtml)网页中,我编写了以下超链接:
<a href="#" onclick="openStudentsRequestsDetail('@Url.Action("StudentRequestsDetail")', @item.RequestId , @item.EsameEstStudente.Id );" style="display: block; font-size: 10px">@Recognition.Views.Students.Localization.Requests.CorrispondenceNotAutomatic</a>
javascript 文件被正确引用并包含以下代码:
var DETAIL_STUDENT_REQUESTS_SELECTOR = "#lookup_student_requests_detail";
$(document).ready(function () {
// Set ad_lookup_detail as dialog
recognitionDialog(DETAIL_STUDENT_REQUESTS_SELECTOR);
registerAjaxTooltip(DETAIL_STUDENT_REQUESTS_SELECTOR);
});
function openStudentsRequestsDetail(controllerActionURL, RequestId , EsameEstId) {
showLoading();
getStudentRequestsDetail(controllerActionURL, RequestId, EsameEstId);
}
function closeStudentsRequestsLookup() {
$(DETAIL_STUDENT_REQUESTS_SELECTOR).dialog('close');
}
function getStudentRequestsDetail(controllerActionURL, pRequestId, pEsameEstId)
{
ajaxPost(controllerActionURL, { EsameEstStudenteId: pEsameEstId, RichiestaAutorizzId: pRequestId }, function (data)
{
$(DETAIL_STUDENT_REQUESTS_SELECTOR).html(data);
hideLoading();
openDialog(DETAIL_STUDENT_REQUESTS_SELECTOR,true;
}, null);
}
我在行中放了一个断点
$(DETAIL_STUDENT_REQUESTS_SELECTOR).html(data)
并且数据包含正确的 HTML 代码。
选择器在具有以下代码的部分视图中用作 div id:
@model IEnumerable<Recognition.ViewModels.StudentRequestsViewModel>
<table class="age-table">
<!-- Table header -->
<thead style="font-size: small;">
<tr>
<th>
@Recognition.Views.Students.Localization.Requests.Status
</th>
<th>
@Recognition.Views.Students.Localization.Requests.ForeignExam
</th>
<th>
@Recognition.Views.Students.Localization.Requests.ItalianExam
</th>
<th>
@Recognition.Views.Students.Localization.Requests.Ssd
</th>
<th>
@Recognition.Views.Students.Localization.Requests.RatreExt
</th>
<th>
@Recognition.Views.Students.Localization.Requests.RateBocconi
</th>
<th style="width: 25%;">
@Recognition.Views.Students.Localization.Requests.Validity
</th>
</tr>
</thead>
<!-- End Table header -->
<!-- Table Content -->
@foreach (var item in Model)
{
<tr id="stu_exam_@item.EsameEstStudente.Id">
@if (item.EsameEstStudente.AutorizzEsameEst != null)
{
<td data-sort-value="@item.EsameEstStudente.AutorizzEsameEst.Stato">
@Html.DisplayFor(a => item.EsameEstStudente.AutorizzEsameEst.StatoEnum)
@if (item.EsameEstStudente.AutorizzEsameEst.AutorizzAutomatica == 0)
{
<a href="#" onclick="openStudentsRequestsDetail('@Url.Action("StudentRequestsDetail")', @item.RequestId , @item.EsameEstStudente.Id );" style="display: block; font-size: 10px">@Recognition.Views.Students.Localization.Requests.CorrispondenceNotAutomatic</a>
}
</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.EsameEstero.Descrizione)</td>
if (item.EsameEstStudente.AutorizzEsameEst.AD_COD != null && item.EsameEstStudente.AutorizzEsameEst.AA_OFF_ID.HasValue)
{
<td>
[@Html.DisplayFor(a => item.EsameEstStudente.AutorizzEsameEst.AD_COD)]
@Html.DisplayFor(a => item.AdName)
<span style="display: block; color: gray;">(@GlobalResources.Teacher @Html.DisplayFor(a => item.EsameEstStudente.AutorizzEsameEst.V_ESSE3_DOCENTI.COGNOME))</span>
</td>
<td>@Html.DisplayFor(a => item.SSD)</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.VotoEst)</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.VotoIta)</td>
}
else
{
<td>
@Recognition.Views.Students.Localization.Requests.WithoutCorrispondence.ToUpper()
<span style="display: block; color: gray;">(@GlobalResources.RespCDS @Html.DisplayFor(a => item.EsameEstStudente.AutorizzEsameEst.V_ESSE3_CARICHE.COGNOME))</span>
</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.AutorizzEsameEst.SettoreNoCorrisp)</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.VotoEst)</td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.VotoIta)</td>
}
<td>@Html.DisplayWithFallback(a => string.Format("{0}/{1}", item.EsameEstStudente.AutorizzEsameEst.AnnoInizioValid + (item.EsameEstStudente.AutorizzEsameEst.Durata - 1), item.EsameEstStudente.AutorizzEsameEst.AnnoInizioValid + (item.EsameEstStudente.AutorizzEsameEst.Durata - 1) + 1), fallback: "", compareTo: "/")</td>
}
else
{
<td data-sort-value="-1"></td>
<td></td>
<td>@Html.DisplayFor(a => item.EsameEstStudente.EsameEstero.Descrizione)</td>
<td></td>
}
</tr>
}
<!-- End Table Content -->
</table>
<div id="lookup_student_requests_detail"></div>
但是,该页面不显示。
你能帮助我吗?
谢谢,西蒙娜
解决方案
容器“#lookup_student_requests_detail”是否放置在局部视图中?如果是,那么您需要将其移至以下代码下方
<a href="#" onclick="openStudentsRequestsDetail('@Url.Action("StudentRequestsDetail")', @item.RequestId , @item.EsameEstStudente.Id );" style="display: block; font-size: 10px">@Recognition.Views.Students.Localization.Requests.CorrispondenceNotAutomatic</a>
推荐阅读
- android - com.google.firebase.iid.FirebaseInstanceIdReceiver 需要导出吗?
- sql - CONVERT datetime 在存储过程中不起作用
- javascript - 更改每个文件或每个 describe() 块的 mocha 选项
- node.js - NodeJS + Google Login + Firebase Functions 导致解码 Firebase 会话 cookie 失败
- api - 未找到 PUT 方法 appscript api 密钥
- json - Json 多参数如何解析?
- javascript - 将 Array.from 作为回调传递给 Array.flatMap 时,为什么会出现 TypeError: 0 is not a function?
- google-play - 从变量设置 DevOps 任务下拉选项
- javascript - 组件列表:函数没有收到正确的参数
- reactjs - 测试 Window.Location.Pathname 测试库 + jest