nhibernate, mvc 및 modelbinders
-
03-07-2019 - |
문제
nhibernate로 모델 바인더를 구성하고 싶습니다.
그래서 나는 가지고있다:
<object id="GigModelBinder" type="App.ModelBinders.GigModelBinder, App.Web" singleton="false" >
<property name="VenueManager" ref="VenueManager"/>
<property name="ArtistManager" ref="ArtistManager"/>
올바른 모델 바인더를 사용하도록 컨트롤러 작업을 표시하는 속성이 있습니다.
[AcceptVerbs("POST")]
public ActionResult Create([GigBinderAttribute]Gig gig)
{
GigManager.Save(gig);
return View();
}
이것은 잘 작동하고 내 GigModelbinder는 올바른 Venuemanger와 Artistmanager가 주입했습니다.
그러나 응용 프로그램이 시작되면 다음을 추가합니다.
System.Web.Mvc.ModelBinders.Binders.Add(typeof(App.Shared.DO.Gig), new GigModelBinder());
컨트롤러 작업 사용에서 :
UpdateModel<Gig>(gig);
예를 들어:
[AcceptVerbs("POST")]
public ActionResult Update(Guid id, FormCollection formCollection)
{
Gig gig = GigManager.GetByID(id);
UpdateModel<Gig>(gig);
GigManager.Save(gig);
return View();
}
Venuemanger와 Artistmanager는 Gigmodelbinder에 주입되지 않았습니다.
내가 잘못하고있는 아이디어가 있습니까?
해결책
첫 번째 예에서는 Spring.net을 통해 객체를 검색합니다. 즉, 모든 종속성을 찾고 객체에 고착하면 모든 것이 잘 작동합니다.
두 번째 예에서는 Spring.net을 모두 잊어 버리고 수업의 일반적인 인스턴스 만 작성하십시오.
바인더를 등록하는 선은 다음과 같습니다.
System.Web.Mvc.ModelBinders.Binders[typeof(App.Shared.DO.Gig)] = context.GetObject("GigModelBinder");
여기서 Context는 iApplicationContext 또는 Spring.net 패키지의 iobjectFactory 인스턴스입니다.
안부, Matthias.
제휴하지 않습니다 StackOverflow