Autofac
またはNinject
の依存関係注入を適用しようとしていますが、クライアント側の検証が機能しなくなってしまいます。ここで 依存関係注入によりクライアント側の検証が妨げられています
public interface IPersonRepository
{
IQueryable<Person> Persons { get; }
}
そして、こちらのモデルです:
class EFPersonRepository : IPersonRepository
{
private readonly Context _context;
public EFPersonRepository(Context context)
{
_context = context;
}
public IQueryable<Person> Persons
{
get { return _context.Persons; }
}
}
そして、ここでコントローラです:
public class PersonController : Controller
{
private readonly IPersonRepository _personRepository;
public PersonController(IPersonRepository personRepository)
{
_personRepository = personRepository;
}
public ActionResult Create()
{
var person=new Person();
return View(person);
}
}
アプリケーションが起動します。
protected void Application_Start()
{
// ApplyDependeny();
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
private void ApplyDependeny()
{
var context = new Context();
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterModule(new DependencyInjector(context));
DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
}
の
クライアント側の参照:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
web.configファイル:
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
しかし、検証が機能していません。
なぜクライアント側の検証を妨げるのはIOCコンテナなのでしょうか? – jgauffin
@jgauffin:それは、推測と思われ、おそらく間違っているようです。 –
それから推測を削除すれば、おそらくより良い助けになるでしょう。また、javascriptのエラーや生成されたビューの外観を追加します。依存性注入コンテナ検証機能を削除した後に – jgauffin