Javascript .加载并启动新路径
在我的项目中,我试图向我的一个视图添加一个模式引导,我使用Javascript .加载并启动新路径,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,在我的项目中,我试图向我的一个视图添加一个模式引导,我使用.load()加载该视图,问题是当我尝试加载视图时,它只显示为黑色,我尝试使用console.log()查看错误,我看到了这一点 http://localhost:38212/Desafios/Details/Solucoes/Details?id=14 当我单击div触发模式时,我处于/Desafios/Details,我想转到/Solucoes/Details,而不是所有的url,我不想将.load()url添加到我之前的url中。我
.load()
加载该视图,问题是当我尝试加载视图时,它只显示为黑色,我尝试使用console.log()
查看错误,我看到了这一点
http://localhost:38212/Desafios/Details/Solucoes/Details?id=14
当我单击div触发模式时,我处于/Desafios/Details
,我想转到/Solucoes/Details
,而不是所有的url,我不想将.load()
url添加到我之前的url中。我该怎么做
这是我的jquery函数
$("#VisualizarSolucao").click(function (event) {
var id = $(this).attr("data-id");
$("#modal").load("../Solucoes/Details?id=" + id, function () {
$("#modal").modal();
})
event.preventDefault()
});
我将js加载到一个外部文件中,下面是在click事件中调用的VisualizarSolucao id
<div class="col-md-10" style="border-left:2px solid black">
<p style="text-align:left;padding-top:5px">
<a href="" id="VisualizarSolucao" data-id="@i.SolucaoId" style="font-weight:900">@i.SolucaoTitulo</a>
</p>
<br />
<div class="col-md-offset-4 col-md-8" style="text-align:right">
<text>Criado por <a href="#">@i.User.UserName</a> no dia @i.DataCriacao</text>
</div>
</div>
Criado por no dia@i.datacriaco
函数.load()
中的url需要是“/Solucoes/Details?id=“+id
,但是您应该始终使用@url.Action()
方法来确保正确生成url
由于脚本位于外部文件中,并且razor代码不在外部文件中解析,因此将您的html更改为
<a href="#" class="VisualizarSolucao" data-url="@Url.Action("Details", "Solucoes", new { id = i.SolucaoId })">
始终使用UrlHelper方法-
.load('@Url.Action(“Details”,“Solucoes”),{id:id},function(){
仍在运行,并给出相同的错误:该脚本在视图中还是外部文件?它是外部文件为什么?然后在问题中解释这一点(因为它很重要)。并显示您当前如何使用id=“VisualizarSolaco”
生成元素。现在它不会加载任何内容,甚至连模式的黑色窗口也不会出现:/当然,如果您的其他代码正确,它会加载。详细信息()
SolucoesController的方法-它被击中了吗?脚本上的url未定义,那么您没有正确复制我答案中的代码。
$('.VisualizarSolucao').click(function() { // class name selector
var url = $(this).data('url'); // use data(), not attr()
$("#modal").load(url, function () {
$("#modal").modal();
})
});