.load开始新的路径

时间:2016-06-11 08:32:44

标签: javascript jquery asp.net-mvc-4

在我的项目中我试图在我的1个视图中添加模态引导程序并使用http://localhost:38212/Desafios/Details/Solucoes/Details?id=14加载该视图,事情就是当我尝试加载视图时它只显示为黑色,我试图使用/Desafios/Details观看错误,我看到了这个

/Solucoes/Details

当我点击div触发模态时,我在.load(),我想转到$("#VisualizarSolucao").click(function (event) { var id = $(this).attr("data-id"); $("#modal").load("../Solucoes/Details?id=" + id, function () { $("#modal").modal(); }) event.preventDefault() }); 而不是所有网址,我不想添加{ {1}} url到我之前的网址。我怎样才能做到这一点?

这是我的jquery函数

<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>

我在外部文件中加载js,这是在click事件上调用的VisualizarSolucao id

<input name="grand_total" type="text" class="form-control" value="@{{sum(saletemp)*discount1/100 | currency: "&#x9f3"}}" />

<input name="discount" type="text" class="form-control" id="add_payment"  ng-model="discount1"/>

1 个答案:

答案 0 :(得分:1)

.load()函数中的网址必须为"/Solucoes/Details?id=" + id,但您应始终使用@Url.Action()方法确保您的网址正确生成。

由于脚本位于外部文件中,并且未在外部文件中解析剃刀代码,因此请将html更改为

<a href="#" class="VisualizarSolucao" data-url="@Url.Action("Details", "Solucoes", new { id = i.SolucaoId })">

请注意,id已更改为class名称(您在循环中生成重复的id属性,这是无效的html)。您还应该删除内联样式并改为使用css。

然后将脚本更改为(不需要event.preventDefault()

$('.VisualizarSolucao').click(function() { // class name selector
    var url = $(this).data('url'); // use data(), not attr()
    $("#modal").load(url, function () {
        $("#modal").modal();
    })
});