C# 객체로 읽을 수있는 JSON 객체를 만들려고하는데 AJAX를 통해 전송하려고하면 400 개의 잘못된 요청 오류가 계속 발생합니다.C에서 역 직렬화 할 수있는 JSON 객체 만들기
$.ajax({
type: "POST",
url: "LeagueService.svc/Fixtures",
data: JSON.stringify(fixture),
dataType: "json",
contentType: "application/json",
success: function (json, status, req) {
$successMessage = '<div class="hero-unit"><h2>Success</h2><p>The fixture has been added to the database.</p></div>';
$('#dialog').html($successMessage).fadeOut(500, function (e) {
$(this).dialog("close");
});
},
error: function (req, status, error) {
alert('Error: ' + req.responseText);
}
});
을 그리고 내 고정물 객체가 다음과 같습니다 : 다음과 같이
내 자바 스크립트입니다
function Fixture() { }
Fixture.prototype =
{
ID: "",
HomeTeam: "",
AwayTeam: "",
Date: "",
toJSON: function() { return { "fixture": {"ID" : this.ID, "HomeTeam" : this.HomeTeam, "AwayTeam" : this.AwayTeam, "Date" : this.Date} }; }
};
이 방법은 내가 쓴 다른 기능에 절대적으로 좋은 일했다, 그래서 나는 확실하지 않다 무엇을 지금 잘못되고있다. 인터페이스 :
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Wrapped,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/Fixtures")]
void AddFixture(Fixture fixture);
및 방법 :
public void AddFixture(Fixture fixture)
{
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.DBConnect))
{
try
{
conn.Open();
string query = "INSERT INTO tbFixtures (HomeTeam, AwayTeam, Date) VALUES(@HT, @AT, @Date);";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@HT", fixture.HomeTeam.ID);
cmd.Parameters.AddWithValue("@AT", fixture.AwayTeam.ID);
cmd.Parameters.AddWithValue("@Date", fixture.Date);
cmd.ExecuteNonQuery();
}
}
catch (Exception) { }
finally
{
conn.Close();
}
}
}
그리고 C#을 클래스 :
[DataContract(Name="Fixture", Namespace="")]
public class Fixture
{
[DataMember(Name = "ID", Order = 1)]
public int ID { get; set; }
[DataMember(Name = "HomeTeam", Order = 2)]
public Team HomeTeam { get; set; }
[DataMember(Name = "AwayTeam", Order = 3)]
public Team AwayTeam { get; set; }
[DataMember(Name = "Date", Order = 4)]
public DateTime Date { get; set; }
}
[DataContract(Name = "Team", Namespace = "")]
public class Team
{
[DataMember(Name = "ID", Order = 1)]
public int ID { get; set; }
[DataMember(Name = "Name", Order = 2)]
public string Name { get; set; }
[DataMember(Name = "Wins", Order = 3)]
public int Wins { get; set; }
[DataMember(Name = "Losses", Order = 4)]
public int Losses { get; set; }
[DataMember(Name = "Draws", Order = 5)]
public int Draws { get; set; }
[DataMember(Name = "GoalsConceded", Order = 6)]
public int GoalsConceded { get; set; }
[DataMember(Name = "GoalsScored", Order = 7)]
public int GoalsScored { get; set; }
[DataMember(Name = "Manager", Order = 8)]
public Manager Manager { get; set; }
}
[DataContract(Name = "Manager", Namespace = "")]
public class Manager
{
[DataMember(Name = "ID", Order = 1)]
public int ID { get; set; }
[DataMember(Name = "Name", Order = 2)]
public string Name { get; set; }
}
이
은 관리자와 팀 클래스가
기록됩니다내 C# 방법 및 인터페이스
JavaScript의 Fixture 클래스와 정확히 같은 방식으로.개체가 올바른 JSON이라고 생각되는 것으로 serialize되지만 분명히 이러한 오류가 발생하는 경우 아닙니다. 사람이에 어떤 빛을 흘릴 수 있다면
{ "fixture": {
"ID":0,
"HomeTeam":{
"ID":1,
"Name":"Rhondda St FC",
"Wins":21,
"Losses":2,
"Draws":4,
"GoalsConceded":20,
"GoalsScored":36,
"Manager": {
"ID":1,
"Name":"Ron Burgundy"
}
},
"AwayTeam": {
"ID":2,
"Name":"Mt Pleasant United FC",
"Wins":18,
"Losses":5,
"Draws":3,
"GoalsConceded":22,
"GoalsScored":28,
"Manager": {
"ID":2,
"Name":"Brian Fantana"
}
},
"Date":"02/19/2013 12:00pm"
}}
주시면 감사하겠습니다 다음과 같이 JSON 생산 이다. 감사!
편집 : (CSS를 제외) 전체 오류는 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Request Error</title>
</head>
<body>
<div id="content">
<p class="heading1">Request Error</p>
<p xmlns="">The server encountered an error processing the request. Please see the <a rel="help-page" href="http://localhost:55310/LeagueService.svc/help">service help page</a> for constructing valid requests to the service.</p>
</div>
</body>
</html>
전체 오류 메시지 란 무엇입니까? – jrummell
끝에 오류 메시지를 추가했습니다. – jrdn
서비스 메서드 디버깅을 시도 했습니까? – jrummell