使用JavaScript导航到另一个页面

使用JavaScript导航到另一个页面,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我是MVC新手,当我用JavaScript点击一个div时,我想进入与该div相关的详细页面。我的JavaScript和控制器代码如下,我得到了一个错误。我在哪里犯错误 我的JavaScript代码: <script> $('div.ProjePartialGovde').click(function (el) { var projeid = $(this).data('id'); $.ajax({ method: "get", u

我是MVC新手,当我用JavaScript点击一个div时,我想进入与该div相关的详细页面。我的JavaScript和控制器代码如下,我得到了一个错误。我在哪里犯错误

我的JavaScript代码:

<script>
$('div.ProjePartialGovde').click(function (el) {

    var projeid = $(this).data('id');

    $.ajax({
        method: "get",
        url: '@Url.Action("Detay", "Proje")',
        data: { ID: projeid }
    })
    .done(function (msg) {
        window.location.href = '@Url.Action("Detay", "Proje")' + "projeID=" + projeid;
    })
});
编辑:我更改了JavaScript代码,如下所示:

<script>
$('div.ProjePartialGovde').click(function (el) {

    var projeid = $(this).data('id');
    alert(projeid);
    (function(){
        Html.ActionLink("Detay", "Proje", new { ID: projeid });
    }) 
});

$('div.ProjePartialGovde')。单击(函数(el){
var projeid=$(this.data('id');
警报(projeid);
(功能(){
ActionLink(“Detay”,“Proje”,新的{ID:projeid});
}) 
});

重定向到页面不需要ajax

将其更改为:

$('div.ProjePartialGovde').click(function (el) {
    var projeid = $(this).data('id');
    window.location.href = '@Url.Action("Detay", "Proje")' + "?ID=" + projeid;
});

我犯了个错误什么错误!(您创建了一个名为
projeID
的查询字符串参数,但它必须是
id
,才能与方法中的参数相匹配)以及为什么要进行ajax调用以返回视图,但从未对其执行任何操作。如果您想重定向,不要使用ajax。重定向到另一个操作需要表单提交或锚定链接-记住PRG模式。AJAX调用旨在返回同一页面上的操作结果,而不是重定向到其他页面,即使您正在使用AJAX成功部分中的
window.location.href
。我正确获得了projectid。但这可能是拜比里米德所赐。我不太懂JavaScript语法。他们给了我准备好的代码,我试图更改它。如果你想“转到详细信息页面”,那么使用
@Html.ActionLink(“action”,“controller”,new{ID=item.ID})
其中
item
是你用来创建行的循环的变量,
ID
是projeid属性。(如果没有生成行的代码,这只是猜测)您根本不需要任何javascript—将div更改为锚点。(但我想这取决于div是什么,没有详细说明)。@freedomn-m我没有使用任何ajax,OP也没有分享他的HTML。“ajax”是一个拼写错误的javascript,并且已经添加了它依赖于HTML的注释。
$('div.ProjePartialGovde').click(function (el) {
    var projeid = $(this).data('id');
    window.location.href = '@Url.Action("Detay", "Proje")' + "?ID=" + projeid;
});