jquery - 使用 JQuery 在 mvc 中加载部分视图
问题描述
我正在尝试使用这个问题向我的布局添加部分视图。
我有以下相关代码:
ShowStatistics.cshtml
<script src="/scripts/jquery-3.3.1.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$('.jsload').on('click', function (evt) {
evt.preventDefault();
evt.stopPropagation();
var $detailDiv = $('#detailsDiv'),
url = $(this).data('url');
$.get(url, function (data) {
$detailDiv.replaceWith(data);
});
});
})
</script>
<div id="detailsDiv">
<!--Content gets loaded by JQuery-->
</div>
<button data-url='@Url.Action("Details","Statistics", new { id = Model.Id } )' class="jsload">
Show Skills
</button>
PlayerSkills.cshtml
@model MVC.Models.ViewPlayerSkills
@{
Layout = null;
}
<p>HAHAHAHAHAHAHHAHAHAHHAHAHAHAHHAH</p>
@foreach (var property in ViewData.ModelMetadata.Properties)
{
<div class="editor">
<label>@(property.DisplayName ?? property.PropertyName):</label>
@Html.Display(property.PropertyName)
</div>
}
统计控制器.cs
public ActionResult Details(int id)
{
List<Player> allPlayers = GetPlayers();
Player pl = allPlayers.Where(x => x.Id == id).FirstOrDefault();
ViewPlayerSkills player = new ViewPlayerSkills(pl);
return PartialView("PlayerSkills", player);
}
我收到以下错误消息:
未捕获的 ReferenceError:数据未在 Object.fireWith [as resolveWith] (jquery-3.3.1.js:3398) 处的 Object.success (3:21) 处定义 (jquery-3.3.1.js:3268) 完成(jquery-3.3.1.js:9305) 在 XMLHttpRequest。(jquery-3.3.1.js:9548) (匿名) @ 3:21 fire @ jquery-3.3.1.js:3268 fireWith @ jquery-3.3.1.js:3398 done @ jquery-3.3.1.js: 9305(匿名)@jquery-3.3.1.js:9548 加载(异步)发送@jquery-3.3.1.js:9567 ajax@jquery-3.3.1.js:9206 jQuery.(匿名函数)@jquery-3.3 .1.js:9355(匿名)@ 3:20 dispatch @ jquery-3.3.1.js:5183 elemData.handle @ jquery-3.3.1.js:4991
当我转到网址http://localhost :{port}/Statistics/Details/5
我确实得到了我想要的输出:
解决方案
<script src="/scripts/jquery-3.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.jsload').on('click', function (evt) {
evt.preventDefault();
evt.stopPropagation();;
$('#detailsDiv').load($(this).data('url'));
});
})
</script>
<div id="detailsDiv">
<!--Content gets loaded by JQuery-->
</div>
<button data-url='@Url.Action("Details","Statistics", new { id = Model.Id }
)' class="jsload">
Show Skills
</button>
推荐阅读
- html - 带有图片图标和切换图标的手风琴菜单
- pandas - 将 GPX 错误的经纬度点映射/捕捉到边缘
- ios - 在服务器上升级 SSL 证书后 iOS 应用程序失败
- spring-boot - Axon 框架重试逻辑
- jmeter - 如何从 csv 配置数据集生成自定义请求正文
- c++ - 如何解决不合格名称查找问题
- react-native - 在本机反应中,createBottomTabNavigator 中未显示图标
- hibernate - 如何将原生查询结果映射到 POJO?
- julia - 如何将随机字符串转换为字节字符串
- asp.net-core-3.0 - 是否有从 ResponseCache 中排除布局页面的捷径