Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
MVC 4 Ajax ActionLink覆盖目标div_Ajax_Asp.net Mvc_Target - Fatal编程技术网

MVC 4 Ajax ActionLink覆盖目标div

MVC 4 Ajax ActionLink覆盖目标div,ajax,asp.net-mvc,target,Ajax,Asp.net Mvc,Target,我在MVC视图中创建了一个ajax.ActionLink,它用响应覆盖目标div,而不是用响应填充它,这毫无意义。这篇文章说它不应该凌驾于父母之上,而应该凌驾于孩子之上 以下是链接: @Ajax.ActionLink(domain.Domain, "Edit_Partial", "DomainNames", new { id = domain.DomainNameId }, new AjaxOptions { HttpMethod = "get", OnSuccess = "doAsyncCal

我在MVC视图中创建了一个ajax.ActionLink,它用响应覆盖目标div,而不是用响应填充它,这毫无意义。这篇文章说它不应该凌驾于父母之上,而应该凌驾于孩子之上

以下是链接:

@Ajax.ActionLink(domain.Domain, "Edit_Partial", "DomainNames", new { id = domain.DomainNameId }, new AjaxOptions { HttpMethod = "get", OnSuccess = "doAsyncCallBack()", UpdateTargetId = "editDomainTarget" })
以下是加载前的div:

<div class="modal-body" id="editDomainModalBody">
<div id="editDomainTarget">Load body…</div>
</div>
<div class="modal-body" id="editDomainModalBody">
<p>New Content</p>
</div>

装载体…
以下是加载后的Div:

<div class="modal-body" id="editDomainModalBody">
<div id="editDomainTarget">Load body…</div>
</div>
<div class="modal-body" id="editDomainModalBody">
<p>New Content</p>
</div>

新内容

这在设计上是不好的。如果我更新了目标,然后又想这样做,那么目标就不在DOM中了。jQueryAjax不是这样工作的。 有人对此有办法吗?谢谢

情节越来越复杂

我决定,既然ajax是在目标div之上加载的,那么我只需要将控制器返回的内容包装成相同的div,这样它就会在往返过程中返回到DOM。我们来看看发生了什么:

<div class="modal-body" id="editDomainModalBody">
    <div id="editDomainTarget">
        <div id="editDomainTarget">Load body…</div>
    </div>
</div>

装载体…

好格雷夫!有人吗?

我解决了这个问题,但并不真正了解原因。如果您没有注意到(或者我没有正确解释),数据被加载到一个div中,同时由twitter引导代码处理并显示在一个模式窗口中。我使用twitter数据-(数据破折号)属性来处理这个问题。jQueryAjax和twitter引导代码之间似乎存在着一种奇怪的竞争条件,或者与数据属性之间存在一些冲突

修复方法是将ajax数据加载到同一个div中,但从提供的onComplete或onSuccess回调启动模式窗口

幸运的是,TwitterBootstrap提供了一个简单的javascript调用来启动模式窗口

$('yourModal').modal('show')