Внедрение зависимостей предотвращает проверку на стороне клиента MVC3 - PullRequest
1 голос
/ 02 января 2012

Я пытаюсь применить внедрение зависимостей с помощью 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"/>

Но проверка не работает.

Ответы [ 2 ]

0 голосов
/ 02 января 2012

Вы регистрируете свой контекст и все свои контроллеры, но вы забыли зарегистрировать свой репозиторий.

 builder.RegisterType<EFPersonRepository>().As<IPersonRepository>();
0 голосов
/ 02 января 2012

добавить ссылки на стороне клиента

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...