ASP.NET MVC 4で一連のイベントメッセージをリッスンするポストアクションを作成する必要があります。イベントがたくさんあるため、イベントごとにアクションを作成できません。したがって、投稿されたモデルはカスタムモデルバインダーを使用してイベントをハイドレイトするため、基本クラスでアクションを作成するのが最適です。
一部のイベントは次のようになります。
public class QueryID : Identity<Guid>
{
public QueryID(Guid id)
{
Identifier = id;
}
}
public class QueryEvent : IEvent<QueryID>
{
public QueryEvent(QueryID id)
{
Identity = id;
}
#region Implementation of IEvent<out QueryID>
public QueryID Identity { get; private set; }
#endregion
}
public class QueryCreated : QueryEvent
{
public string ConnectionID { get; private set; }
public QueryCreated(QueryID id, string connectionID)
: base(id)
{
ConnectionID = connectionID;
}
}
public class ColumnAdded : QueryEvent
{
public string Column { get; private set; }
public ColumnAdded(QueryID id, string column)
: base(id)
{
Column = column;
}
}
これらのメッセージを受信するためのアクションメソッドは、次のようになります。
[HttpPost]
public ActionResult Index(IEvent<IIdentity> e)
{
// whatever
return new EmptyResult();
}
基本IdentityクラスはIEvent<IIdentity>
インターフェースを実装します。
これを実現するために、モデルバインダーはどのように見えますか?
ありがとう