MVC从我打电话给Json结果返回到相同视图

时间:2019-06-30 09:31:20

标签: javascript c# ajax asp.net-mvc

我的代码确实需要帮助。基本上,我通过ajax从视图调用动作,并且动作返回字符串-这部分工作良好。问题是动作返回会导致新的视图。我不想发生我希望该字符串结果返回到我从中调用操作的原始视图。我的脚本代码如下:

@using (Html.BeginForm(FormMethod.Post))
{
    <div class="LDR">
        <a class="Like" onmouseover="Like(@comment.Id)" onmouseout="ResetLike(@comment.Id)" onclick="LikeClick(@comment.Id)">
            <img src="~/Content/Style/img/Like.png" id="Like_@comment.Id" />
            @Html.Action("LikeComment", "Routes", new { id = comment.Id })
        </a>
        <a href="@Url.Action("AddDislikeComment", "Routes", new {id = comment.Id})" class="Dislike" onmouseover="Dislike(@comment.Id)" onmouseout="ResetDislike(@comment.Id)">
            <img src="~/Content/Style/img/Dislike.png" id="Dislike_@comment.Id" />
            @Html.Action("DislikeComment", "Routes", new { id = comment.Id })
        </a>
        <a href="@Url.Action("AddReportComment", "Routes", new {id = comment.Id})" class="Report" onmouseover="Report(@comment.Id)" onmouseout="ResetReport(@comment.Id)">
            <img src="~/Content/Style/img/report.png" id="Report_@comment.Id" />
            @Html.Action("ReportComment", "Routes", new { id = comment.Id })
        </a>
    </div>
}

....

function LikeClick(id) {
    $.ajax({
        async: false,
        cache: false,
        type: "GET",
        url: "@(Url.Action("AddLC", "Routes"))",
        dataType: "Json",
        data: { "id": id },
        success: function (message) {
            alert(message);
        }
    });
}

动作如下:

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult AddLC(int id)
{
    if (check == 0)
    {
        // ...

        string message = "hi";
        return Json(message, JsonRequestBehavior.AllowGet);
    }
    else
    {
        string message = "no";
        return Json(message, JsonRequestBehavior.AllowGet);
    }
}

我已经尝试返回JavaScript内容,但结果与此相同。如您所见,我只想显示带有自定义文本的基本警报消息,但是尝试并在网络上找到解决方案却失败了两个星期。

1 个答案:

答案 0 :(得分:0)

所以我终于找到了问题所在,并且我认为这是我忘记的细节,因此在调试器中查看控制台后,我在这里发现了一个错误(“ Uncaught TypeError:无法读取属性'ajax' “),因此在添加jQuery后它开始工作。感谢大家的帮助,也很抱歉浪费您的时间。