Jquery 如何从ajax调用参数传递c#type Guid type变量
我的控制器中有一个post方法,它有Guid类型参数,如下所示Jquery 如何从ajax调用参数传递c#type Guid type变量,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我的控制器中有一个post方法,它有Guid类型参数,如下所示 [HttpPost] public ActionResult SaveDiscussion(Guid guid, string Title) { try { // some logics here return Json(new { success = true, message = "success" }, JsonRequestBe
[HttpPost]
public ActionResult SaveDiscussion(Guid guid, string Title)
{
try
{
// some logics here
return Json(new { success = true, message = "success" }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { success = false, message = e }, JsonRequestBehavior.AllowGet);
}
}
这是我的ajax电话
$.ajax({
url: '/Base/SaveDiscussion',
data: { guid: $("#DiscussionItemTempId").val(), Title: $(".discussionBox").val() },
type: "post",
success: function (response) {
// some code here
},
});
我得到了如下截图所示的异常。
我认为控制器中的Guid类型参数有问题
这是网络选项卡状态:
我已经在我的控制器上添加了调试器,它没有击中我的控制器,所以在我的控制器方法中没有错误的代码,这就是为什么我没有显示它的原因。简单地将GUID作为字符串发送就行了,因为带有GUID参数的控制器会自动解析它
data: {
appID: '@Model.ID'
},
在模型中将“ID”作为GUID类型时是否可以尝试将GUID类型更改为字符串,然后将字符串转换为GUID。例如,var realGuid=新GUID(字符串)?没有理由切换为字符串。只要模型绑定器从客户端发送有效的guid值,就可以绑定guid。他得到了500个错误,因为他的自定义逻辑可能是崩溃的,当它找到动作但参数错误时,会给出500,但错误消息会告诉你这一点。您的应用程序正在隐藏错误消息并将其转换为“服务器错误”。尝试更改您的web.config以显示详细错误,例如
只要您传递有效的Guid值,您的代码就可以正常工作。如果工作小提琴是空的,那么为什么要使用Guid
作为参数?您可以尝试切换到可为Null的Guid,以便在请求没有Guid时代码不会崩溃(我认为这是导致当前错误的原因)