Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC使用json获取对象Id_C#_Asp.net Mvc_Asp.net Core Mvc - Fatal编程技术网

C# ASP.NET MVC使用json获取对象Id

C# ASP.NET MVC使用json获取对象Id,c#,asp.net-mvc,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core Mvc,我使用一个jsonResult来接收一些对象Id,然后我尝试在视图中使用$Ajax在console.log中打印,但是console日志打印的是未定义的,而不是一些整数值 控制器操作方法正在正确返回id值: public JsonResult GetLastProcessVersion(int workflowId) { var Workflow = db.Workflows.Find(workflowId); // getting the max process id fro

我使用一个jsonResult来接收一些对象Id,然后我尝试在视图中使用
$Ajax
console.log
中打印,但是console日志打印的是
未定义的
,而不是一些整数值

控制器操作方法正在正确返回id值:

public JsonResult GetLastProcessVersion(int workflowId)
{
    var Workflow = db.Workflows.Find(workflowId);

    // getting the max process id from selected workflow:
    var lastProcessVersion = db.Processes.Where(x => x.WorkflowId == Workflow.Id).Max(y => y.Id);
    return base.Json(lastProcessVersion, JsonRequestBehavior.AllowGet);
}
然后我尝试调用Ajax函数:

$("#btnVisualize").click(function () {
   $.ajax({
        type: 'POST',
        url: '@Url.Action("GetLastProcessVersion")',
         dataType: 'json',
         data: { workflowId: $("#WorkflowId").val()},
       success: function (res) {
           console.log(res.val);
        },
        error: function (ex) {
            alert('Failed to retrieve info.' + ex);
        }
    });
});

在控制台日志中,该值在服务器中返回“undefined”

,方法
GetLastProcessVersion
被定义为“GET”,而AJAX正试图“POST”回同一方法。我很惊讶您没有收到404或500服务器错误,因为AJAX试图发回的方法没有定义

您的AJAX函数应该如下所示:

$(“#btn可视化”)。单击(函数(){
$.ajax({
键入:“GET”,
url:'@url.Action(“GetLastProcessVersion”,“您的控制器名称”),
数据类型:“json”,
数据:{workflowId:$(“#workflowId”).val()},
成功:功能(res){
控制台日志(res);
让redirectUrl='@Url.Action(“RedirectMethod”、“RedirectController”)?v='+res;
//类似于HTTP重定向的行为
//window.location.replace(重定向URL);
//或类似于单击链接的行为
//window.location.href=重定向URL;
},
错误:函数(ex){
警报(“检索信息失败”。+ex);
}
});
});

这看起来更像是一个
GET
请求,而不是一个
POST
,这意味着您应该在URL中传递
workflowId
。您还应该查看Javascript中
res
的内容,为什么假设您有一个
val
属性?是的,在本例中它看起来是一个GET请求,但我想使用这个ajax函数在单击botton后重定向到另一个页面,但首先我需要找到如何获取对象id以创建url链接。@DavidG可能这个res.val不会给我任何信息,这就是我接收未定义的内容的原因。我想知道如何才能正确获取值。为序列化整数返回的JSON就是整数,因此它自己可能会工作。但是使用浏览器开发工具来检查值。