Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET MVC 4部分视图不会使用jquery在第二次重新加载_Javascript_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Javascript ASP.NET MVC 4部分视图不会使用jquery在第二次重新加载

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

我是ASP.NETMVC4的新手。我已经按照教程加载了部分视图,而没有刷新整个页面。问题是它只在第一次重新加载。在我的
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>
My
Test.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);