Tôi không thể cho cuộc sống của tôi tìm ra điều này. Tôi có một bộ điều khiển api web với Get và Post phương pháp. Phương thức Get hoạt động tốt khi có và không có tham số, nhưng bài đăng bị ngắt khi tôi cố gắng thêm tham số String vào nó. Dưới đây là mã của tôi.Phương pháp đăng bài ASP.NET WebApi - 404 Khi truyền tham số
Route:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
Bộ điều khiển:
public class AuditController : ApiController
{
public String Post(String test)
{
return "Success : " + test;
}
public String Get(String test)
{
return "Success : " + test;
}
}
Yêu cầu:
var request = WebRequest.Create("http://localhost:42652/Audit");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write("test=TEST");
}
WebResponse webResponse = request.GetResponse();
Tôi đã thử nhiều biến thể theo yêu cầu, tôi cảm thấy như có một cái gì đó đơn giản tôi còn thiếu. Cảm ơn bạn đã giúp đỡ.
Tuyến đường của bạn cho biết nó có thông số có tên 'id', nhưng trong phương pháp của bạn, bạn chuyển một tham số có tên' test'. Nó sẽ là gì? Ngoài ra các thông số kiểu nguyên thủy luôn được cố gắng đọc từ Uri, vì vậy phương thức đăng bài của bạn sẽ không hoạt động. Tôi thực sự khuyên bạn nên làm việc thông qua tất cả các hướng dẫn ASP.Net Web API rất đẹp trên trang chủ asp.net! – JustAnotherUserYouMayKnow
là này^^ chính xác? – Jonesopolis
Vâng. Phương thức Nhận của bạn đại diện cho Tuyến đường không có thông số {id} - vì thông số id của bạn không có trong phương thức. Tham số thử nghiệm của bạn là một trong các tham số truy vấn tùy chọn, khi bạn gọi 'Kiểm tra? Test = value', nhưng không phải là' Kiểm tra/giá trị'. Câu trả lời bạn chấp nhận tổng hợp này tốt, nhưng tôi vẫn khuyến khích bạn thực sự làm việc thông qua các hướng dẫn! – JustAnotherUserYouMayKnow