Jquery 如何从ajax调用参数传递c#type Guid type变量

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

我的控制器中有一个post方法,它有Guid类型参数,如下所示

  [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时代码不会崩溃(我认为这是导致当前错误的原因)