Теперь успешно работает вызов Ajax - передача объекта JSON [String] - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь разработать некоторую проверку в моем приложении, чтобы проверить, существует ли в базе данных Имя функции , все готово. Вместо того, чтобы использовать SQL, я хотел использовать ajax для передачи этих данных.

К сожалению, при попытке передать этот JSON (String) объект , response никогда не передается success: function (response), и я получаю сообщение об ошибке.

Я надеялся получить несколько советов относительно того, почему это может происходить, поскольку я считаю, что мой код находится в правильном формате для успешного завершения.

Я попытался изменить тип данных на text и также включил contentType: 'application/json; charset=utf-8, но это не помогло решить проблему.

function AllowedFunction(FunctionName) {
    var result = "None";        
    $.ajax({
        url: '@Url.Action("FunAllowed")',
        type: "POST",            
        dataType: "JSON",
        data: { FunctionName: FunctionName },
        success: function (response) {
            if (response.length > 0)
            {
                result = "True";
            }
            else
            {
                result = "False";
            }              
            }            
    });
    return result;
}



    // VAL: Function Name Allowed
    public JsonResult FunAllowed(string FunctionName)
    {            
        var records = db.Functions.Where(x => x.FunctionName == FunctionName).ToList();
        string result = "False";

        if (records.Count > 0)
            result = "True";

        return Json(records, JsonRequestBehavior.AllowGet);
    }

ReferenceError: ответ не определен в eval (eval в AllowedFunction (http://localhost:52613/Functions/Create:50:9),: 1: 1) 1. сообщение: «ответ не определен» 2. stack: "ReferenceError: ответ не определен

1 Ответ

0 голосов
/ 17 мая 2019

Я думаю, это, вероятно, потому что ваша FunAllowed функция ожидает string, но вы передаете object со свойством с именем FunctionName, которое является string.

Я думаю, что если бы вы сделали это, это могло бы работать без изменения вашего кода JS:

class FunAllowedinput
{
    public string FunctionName{get;set;}
}
public JsonResult FunAllowed(FunAllowedInput input)
{            
    var records = db.Functions.Where(x => x.FunctionName == input.FunctionName).ToList();
    string result = "False";

    if (records.Count > 0)
        result = "True";

    return Json(records, JsonRequestBehavior.AllowGet);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...