MVC возвращает результат Json в тот же вид, который я вызываю. - PullRequest
0 голосов
/ 30 июня 2019

Мне действительно нужна помощь с моим кодом. По сути, я вызываю действие из вида через 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 голосов
/ 30 июня 2019

Итак, я наконец-то выяснил, где была проблема, и, как мне кажется, это была глупая деталь о том, что я забыл, поэтому после того, как я заглянул в консоль в отладчике, я нахожу здесь ошибку («Uncaught TypeError: Невозможно прочитать свойство« ajax »). ") поэтому после добавления jQuery он начинает работать. Спасибо всем за помощь и извините, что потратили на это время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...