我有一个简单的帖子可以在测试应用程序中工作
控制器代码
public ActionResult Delete(string Id) { ... delete record ... }
JavaScript
function delAnnouncement(id) { $.ajax({ type: "POST", url: "@Url.Action("Delete", "Announcements")", contentType: "application/json; charset=utf-8", data: JSON.stringify({ "Id": "03d23684-098a-4ae8-8fa2-7d9ce70d63ef" }), // Hard coded for testing success: function (data) { $("#AnnouncementsPH").replaceWith(data); } }); }
我已经创建了一个简单的测试应用程序,并且可以在其中运行。
我正在寻找有关现有应用程序中可能会导致id传递为null的任何想法。
我尝试过的事情: 路由信息在两个应用程序之间是相同的。 它们都是安全的https网站。 现有网站上的其他表格可以正常工作。这是使用带参数的javascript帖子的唯一位置。只是列出所有系统公告的新视图。 据我所知,HTML是有效的。 提琴手显示正在发送数据。 我试图简单地通过硬编码Id。
Id
我不知道是什么原因导致 Post 无法正常工作。
Post
谢谢你的建议
编辑1:这是提琴手原始帖子
POST https://localhost:44300/Announcements/Delete HTTP/1.1 Host: localhost:44300 Connection: keep-alive Content-Length: 39 Accept: */* Origin: https://localhost:44300 X-Requested-With: XMLHttpRequest Content-TypeOfNotification: application/json; charset=utf-8 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 Content-Type: text/plain;charset=UTF-8 Referer: https://localhost:44300/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Cookie: jetbrains.charisma.main.security.PRINCIPAL=NmI4YmFhZTExMThjZDZkZjNmZTBhMDNiZWM4NmY3MDYzZWNiMWE3M2ZmZDM5ODMwYjViMjczN2ZkZmU3YmZlZTpyb290; TCSESSIONID=233EBE63123BA35468235F441F54D7E4; ASP.NET_SessionId=ycnx1ejeyahzipwduux2quqz; __RequestVerificationToken=FnOKGFfBZKEBX4E0KBoV9133e5KK3h9Pd_OjDzNPjv7ifMTMk5uHUPmT621hOQFyOCwW5IhdewKLPDMs2_9jY2vVwrHLYOU9f0F86mN-NoQ1; .AspNet.ApplicationCookie=V8ZnbAx_2_H1Wx946VLcQ235XplzC-uvKdw4CP7Sm8ZVnJu9pG63EuzC0ptOZZNBvzZkRjB0RJS25Pn1WHOzeQSrqoWl87keqRDS6_vMwZ9L6PgKU0rJz7OhD7eKps8l3tzR097zI5WbU_chUZFKLLw1c__rfN3Fy6BbHC1qNtgx0C86AShhG5EsNiruYqJZn-Uj7Z2h75YcZctCFniMyuzD-9RetcMjkN3_PbAJg-_urfntG9NwsMEQdBf1b3K9H3GP_wUYRhnbQdNZpuAkAEa6bVfJiHrnKFhnhLkP8BAfocbMKES1wQKbXBfcNn62cEKUu3On3lHNCNN4zEvOhxF1aDaBk-yghOtvtNkROeFTKMQFD0U-XXAf-RKm0Nwgp1Tb2Ip2U42vshDRNGXQSkOojisVUxiPmkrxDtckNycQd0br1cFSqxfeXyg3cg_vKUP1VMBQcBQxZO6MVLSCDdcpANyoE43IoLp3BHgURJZP88vF18JfVV646XGOZ3QU Id=03d23684-098a-4ae8-8fa2-7d9ce70d63ef
如您所见,Id已发布到控制器,只是未解析并提供给方法中的参数。
您可以像这样附加参数:
var targeturl = '@Url.Action("Test", "Controller")?id=' + ID; $.ajax({ url: targeturl, type: "GET", success: function(data) { }, error: function (data) { } });
或者,您可以直接使用jQuery ajax数据参数:
$.ajax({ type: "POST", url: '@Url.Action("Test", "Controller")', data: { id: "your-id" } }) .done(function( msg ) { alert( "Data Saved: " + msg ); });
参考:http : //api.jquery.com/jquery.ajax/