Javascript I';我在Mvc中使用Ajax发布到控制器,但在foreach中我的var重置为null

Javascript I';我在Mvc中使用Ajax发布到控制器,但在foreach中我的var重置为null,javascript,ajax,asp.net-mvc,razor,model-view-controller,Javascript,Ajax,Asp.net Mvc,Razor,Model View Controller,因此,我用这段代码用数据库中的帖子来填充我的容器 问题是在foreach im为Like函数向onclick添加ID的过程中。但当我尝试使用它时,它变成了空值。即使chrome上的调用堆栈声明它不是空的。有人知道如何解决这个问题吗 Html: 你可以像这样直接使用 @using (Html.BeginForm()) { foreach (var ctrib in Model) { <p>@ctrib.Message.Content @ctrib.Lik

因此,我用这段代码用数据库中的帖子来填充我的容器

问题是在foreach im为Like函数向onclick添加ID的过程中。但当我尝试使用它时,它变成了空值。即使chrome上的调用堆栈声明它不是空的。有人知道如何解决这个问题吗

Html:


你可以像这样直接使用

@using (Html.BeginForm())
{
    foreach (var ctrib in Model)
    {
        <p>@ctrib.Message.Content @ctrib.Likes @ctrib.Reports</p>
        <a name="link" href="#" onclick="javascript:Like('@ctrib.ID');">Like</a>
    }
}

我一开始试过了,但也有同样的问题。
<script type="text/javascript">
function Like(link) {

    var MyAppUrlSettings = {
        MyUsefulUrl: '@Url.Action("Like", "TimelinePage")'
    }
    $.ajax({
        type: "POST",
        url: MyAppUrlSettings.MyUsefulUrl,
        data: link,
        dataType: "json"
    });
}
    [HttpPost]
    public void Like(int ID)
    {
            Contribution C = new Contribution(ID);
            C.likePost();
            RedirectToAction("TimelinePage");

    }
@using (Html.BeginForm())
{
    foreach (var ctrib in Model)
    {
        <p>@ctrib.Message.Content @ctrib.Likes @ctrib.Reports</p>
        <a name="link" href="#" onclick="javascript:Like('@ctrib.ID');">Like</a>
    }
}
function Like(link) {
    jQuery.ajax({
        url: '@Url.Action("Like", "TimelinePage")',
        method: "POST",
        cache: false,
        data: { Id: link }
    }).done(function (result) {
         alert(result); 
    });
}