Web APIプロジェクトを作成していて、モデルに検証を追加したいので、DataAnnotation属性を追加しました。Web APIのデータ注釈が原因でサーバーエラーが発生する
私は別のmvcプロジェクトから私のオブジェクトを渡そうとしてプロジェクトをテストしました。 500台のサーバーエラーが発生しました。
DataAnnotationを削除すると、オブジェクトを正常に渡すことができます。どうして?
私はthisとthisのようないくつかのチュートリアルを見てきましたが、検証エラーの処理方法を示していますが、これは役に立ちませんでした。
UPDATE
class1でMYPROPERTYからのデータ注釈、溶液Bを削除する(ただし、A液中にクラスでそれを残しては)値を正常に渡すことができることを意味します!これはオブジェクトを嫌うことで問題ですか?もしそうなら、私はどのようにそれを解決するのですか?
B =オブジェクト
Aオブジェクト
要求を受け取るために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 "";
}
私のコードを送信するために私のコードを送信して=私のMVCプロジェクトをrecivingマイウェブサービス(適用されたブレークポイントはヒットしていません)
// POST api/values
public void Post([FromBody]Class1 value)
{
}
// PUT api/values/5
public void Put([FromBody]Class1 value)
{
}
にこの
を変更することでした 'Class2'の定義は何ですか? –
こんにちは私はクラス2の定義を追加しました、なぜそれが違いを生む可能性がありますか? – tony09uk