【发布时间】:2019-09-01 14:22:17
【问题描述】:
我有一个使用 Razor Pages 和 Mediatr 的 asp.net core 2.2 Web 应用程序。
我的查询在 Jimmy Bogard 的博客中有私人设置器 described:
public class Query : IRequest<Result>
{
public Query(string needle)
{
this.Needle = needle;
}
public string Needle { get; private set; }
}
当我在我的 web api 中使用它时,它没问题(即使 ConstructionHandling 也不需要)
但是当我使用 Razor Pages 时出现错误,因为查询中没有无参数 ctor:
public class SearchModel : PageBaseModel
{
public SearchModel(IMediator mediator)
: base(mediator)
{
}
[BindProperty(SupportsGet = true)]
public Accounts.Search.Query Query { get; set; }
public Accounts.Search.Result Result { get; private set; }
public async Task<IActionResult> OnGetAsync(CancellationToken cancellationToken)
{
Result = await this.Mediator.Send(Query, cancellationToken);
return this.Page();
}
}
是否可以使用私有 setter 进行模型绑定(无需为每个查询写入 custom IModelBinder)?
【问题讨论】:
标签: c# asp.net-core model-binding mediatr