を与える:ASPNETコアRC2モデルバインディング私はASP.NET CORE RC2で働いていると私は、次のモデルバインダーを持ってヌルモデルに
public class MovieModelBinder : IModelBinder
{
public Task BindModelAsync(ModelBindingContext bindingContext)
{
if (bindingContext.ModelType == typeof(MovieViewModel))
{
var idValue = bindingContext.ValueProvider.GetValue("Id").FirstValue;
var nameValue = bindingContext.ValueProvider.GetValue("Name").FirstValue;
var timespanProperty = bindingContext.ModelMetadata.Properties.Single(p => p.PropertyName == "Length");
var timespanValue = bindingContext.ValueProvider.GetValue(timespanProperty.PropertyName).FirstValue;
int minutes;
int.TryParse(timespanValue, out minutes);
int id;
int.TryParse(idValue, out id);
var model = new MovieViewModel
{
Length = TimeSpan.FromMinutes(minutes),
Id = id,
Name = nameValue
};
return Task.FromResult(ModelBindingResult.Success(bindingContext.ModelName, model));
}
return Task.FromResult(default(ModelBindingResult));
}
}
私はこのようなコントローラのアクションでそれを使用しています:
[HttpPost]
public IActionResult Create([ModelBinder(BinderType = typeof(MovieModelBinder))] MovieViewModel model)
{
// Code here
}
問題は、毎回nullモデルを取得することです。 ModelBindingResult.Successメソッドには何が間違っていますか、正しい結果を返すためにはどのような変更を行う必要がありますか?
前
を私はあまりexperiancedないのですが、私はあなたのリターンといくつかの問題があると思い、あなたのリターンが 'MovieViewModel'になりますshould'tタイプ? – KanisXXX
その例を教えてもらえますか? – gdyrrahitis
私は基本的なサンプルの 'ModelBinder'の例を実行しました。私はAnswersに投稿します。おそらくそれは役に立ちます – KanisXXX