Javascript ASP.NET MVC 4部分视图不会使用jquery在第二次重新加载
我是ASP.NETMVC4的新手。我已经按照教程加载了部分视图,而没有刷新整个页面。问题是它只在第一次重新加载。在我的Javascript ASP.NET MVC 4部分视图不会使用jquery在第二次重新加载,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我是ASP.NETMVC4的新手。我已经按照教程加载了部分视图,而没有刷新整个页面。问题是它只在第一次重新加载。在我的Index.cshtml文件中: <div id="detailsDiv"> </div> <script type="text/javascript"> $('.setImage').click(function () { var url = "/Home/Test"; var name = $(th
Index.cshtml
文件中:
<div id="detailsDiv">
</div>
<script type="text/javascript">
$('.setImage').click(function () {
var url = "/Home/Test";
var name = $(this).val();
$.post(url, { Name: name}, function (data) {
$("#detailsDiv").replaceWith(data);
});
})
</script>
MyTest.cshtml
:
@using Wordrific.Models.ParseFolder
@model ConfigurationData
<p id="abcde">@Model.ConfigurationVariables</p>
<p id="abcde">@Model.GameRules</p>
<p>test</p>
使用Wordrific.Models.ParseFolder
@模型配置数据
@Model.ConfigurationVariables
@Model.GameRules
试验我的问题是它只重新加载一次。我在
Test.cshtml
文件上设置了断点。我在调试日志中看到名称已更改,但浏览器不会更新新数据 到目前为止(在我得到完整的HTML之前),我所能看到的唯一可能导致这种情况的原因是没有使用DOM就绪处理程序
$("#detailsDiv").replaceWith(data);
e、 g
此示例侦听出现在文档
级别(始终存在)的单击
事件,然后应用jQuery筛选器匹配元素,然后将函数应用于导致事件的任何匹配元素
不过,作为一般规则,请使用DOM就绪处理程序
$("#detailsDiv").replaceWith(data);
replaceWith正在替换整个detailsDiv,这就是第二次尝试失败的原因,因为它再也找不到detailsDiv了。请使用以下代码
$("#detailsDiv").html(data);
使用诸如Fiddler2()之类的免费工具来检查实际发送和返回的内容。它使调试ajax调用变得容易:)@TrueBlueAussie我提到了这个问题,在调试日志中,ConfigurationVariables和GameRules的值都发生了更改,但浏览器显示的是旧值,而不是更新的值。我对此感到困惑,因为
post
请求永远不应该被缓存。ConfigurationData
构造函数中发生了什么?它是一个包含两个字符串变量(ConfigurationsVariables
和GameRules
)的对象问:您是否在IE8下运行?(我知道一个奇怪的问题,但这会影响缓存)问题是ConfigurationVariables
和GameRules
被传递到部分视图。我检查了调试日志,发现有更新的值,而不是旧值,但浏览器不显示更新的值
$("#detailsDiv").replaceWith(data);
$("#detailsDiv").html(data);