Ich erstelle ein Web-API-Projekt und möchte meinem Modell eine Validierung hinzufügen, also habe ich ein DataAnnotation-Attribut hinzugefügt.Web-API Datenanmerkungen verursachen 500 Serverfehler, wenn sie bestanden werden
Ich testete das Projekt dann, indem ich versuchte, mein Objekt von einem separaten MVC-Projekt zu übergeben. Ich habe einen Fehler von 500 Servern erhalten.
Durch das Entfernen der DataAnnotation kann ich das Objekt erfolgreich übergeben. Warum?
Ich habe ein paar Tutorials wie this und this angeschaut, sie zeigen, wie Validierungsfehler zu behandeln, aber das hat nicht geholfen.
UPDATE
die Daten Anmerkung aus MyProperty in Class1, Lösung B Entfernen (aber es auf die Klasse in Lösung A zu verlassen) bedeutet Werte erfolgreich geführt werden kann! Ist das ein Problem beim Entkernen des Objekts? Wenn ja, wie löse ich es?
B = Mein Web-Service das Objekt
A = Mein mvc Projekt sendet das Objekt reciving
mein Code der resquest
public class Class1
{
[Required(ErrorMessage = "MyProperty value is required")]//remove this line to make it work
public int MyProperty { get; set; }
public Class2 MyOtherProperty { get; set; }
}
public class Class2
{
public string SomeProperty { get; set; }
}
async Task<string> Test2()
{
var form = new Class1();
form.MyProperty = 123;
form.Class2 = new Class2();
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:58814/api/");
var post = await client.PostAsJsonAsync<Class1>("Values", form);
var putt = await client.PutAsJsonAsync<Class1>("Values", form);
}
return "";
}
meinen Code zu senden, um die Anfrage zu empfangen (der angewendete Breakpoint wird nicht getroffen)
// POST api/values
public void Post([FromBody]Class1 value)
{
}
// PUT api/values/5
public void Put([FromBody]Class1 value)
{
}
zu ändern, was die Definition von 'Class2' ist? –
Hallo Ich habe die Definition der Klasse zwei hinzugefügt, warum konnte das einen Unterschied gemacht haben? – tony09uk