为什么定义mvc httppost时jquery加载不起作用?

为什么定义mvc httppost时jquery加载不起作用?,jquery,asp.net-mvc,http-post,Jquery,Asp.net Mvc,Http Post,以下配置有效-它将编辑视图加载到div中: jQuery: $("#mydiv").load( "/Riders/Edit", { riderId: 123 }, function (data) { } ); Function Edit(ByVal riderId As Integer) As ActionResult Return View(_db.Riders.Single(Function(x) x.rider_id = riderId)) End Fun

以下配置有效-它将编辑视图加载到div中:

jQuery:

$("#mydiv").load(
    "/Riders/Edit",
    { riderId: 123 },
    function (data) { }
);
Function Edit(ByVal riderId As Integer) As ActionResult
    Return View(_db.Riders.Single(Function(x) x.rider_id = riderId))
End Function
POST http://localhost:4693/Riders/Edit 500 (Internal Server Error)
驾驶员控制器:

$("#mydiv").load(
    "/Riders/Edit",
    { riderId: 123 },
    function (data) { }
);
Function Edit(ByVal riderId As Integer) As ActionResult
    Return View(_db.Riders.Single(Function(x) x.rider_id = riderId))
End Function
POST http://localhost:4693/Riders/Edit 500 (Internal Server Error)
但是,当我将HttpPost添加到控制器进行编辑时,我得到一个错误:

<HttpPost()>
Function Edit(ByVal model As Rider) As ActionResult
   'code...
End Function

现在为什么我会在加载时收到POST错误?我确信我的设置中缺少了一些东西,但我还没有看到它。

您正在使用GET方法传递参数,因此如果您将控制器操作指定为POST,它将永远找不到您的控制器操作。通过此链接:

如果参数作为对象(而不是字符串)传递,则 传递给POST方法中的远程url


这就是你的解决方案。

@musefan是的,两个动作都在控制器中,正如你所描述的。宾果!我知道事情就是这么简单。我敢肯定我以前也遇到过这种情况。链接非常有用,谢谢!