Projekt: ASP MVC 4 läuft unter .NET 4.0 Framework:Return Mvc.JsonResult Plus-Set Response.StatusCode
Wenn eine Anwendung unter VS 2010 Express ausgeführt wird (oder im Einsatz und unter IIS 7.5 auf meinem lokalen Rechner ausgeführt wird) die Beobachtet (Pseudo-Code) resultieren aus einer Aktion arbeitet als
erwartet[HttpPost]
public ActionResult PostWord(Model model)
{
....
Response.StatusCode = 400;
Return new JsonResult { data = new {fieldName = "Word", error = "Not really a word!" } };
(und ich habe Content und Contenten Eigenschaften des JsonResult Objekt, wobei kein Unterschied im Verhalten zugewiesen)
Wenn der ausfahrbare auf eine Bahn bewegt wird Host (mit IIS 7) Firebug sagt mir, dass die Antwort wie erwartet ist (400), aber es gibt kein JSON in der Antwort (dh es gibt keinen Text). Wenn ich die Linie
Response.StatusCode = 400;
von der Aktion zu entfernen, wird die JSON perfekt in der Reaktion gebildet wird, aber natürlich auch der Antwortstatuscode 200 (OK), die mit den Verbrauchern Javascript und entsprechendem Funktionsaufruf stört.
Haben Sie irgendwelche Gedanken darüber, was passieren könnte und wie Sie das beheben können? Danke
Warum möchten Sie 400 zurückgeben? Ist das nicht nur eine Fehlerseite mit einer freundlichen Fehlermeldung – TGH
http://stackoverflow.com/questions/6123425/rest-response-code-for-invalid-data vielleicht sollte ich Dinge anders machen, aber JSON wird unabhängig zurückgegeben - Der Antwortcode gibt die Postback-Funktionsinformation an, um zu wissen, was mit dem JSON zu tun ist. 200 für mich bedeutet "Datenbank aktualisiert wie angefordert". – Brent
Ich würde das Fehlerfeld in JSON anstelle des HTTP-Statuscodes überprüfen – TGH