C# ASP.NET MVC使用json获取对象Id
我使用一个jsonResult来接收一些对象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
$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就是整数,因此它自己可能会工作。但是使用浏览器开发工具来检查值。