Липсващи препратки, които не съществуват в MVC3

Отделих моите модели от моето основно приложение ASP.net MVC3 в библиотека от класове, която е част от същото решение като моя проект и е посочена в моя проект.

Все пак моделите в тази библиотека от класове (копирах папката с модели в библиотеката от класове) казват, че неща като system.web.MVC или .Security или дори System.Component.DataAnnotations не съществуват.

Така че предположих, че мога да щракна с десния бутон върху препратките и да щракна върху „Добавяне на препратка“ и да намеря тези .net библиотеки, но уви те не съществуват.

И така, как да ги включа? Така че мога да използвам анотации на данни, сигурност и (очевидно) MVC?


person TheWebs    schedule 30.04.2013    source източник
comment
Трябва да включите DLL, които съдържат тези препратки във вашия проект. Ако те са системни DLL, трябва да работите на правилната версия на OS и .NET Framework.   -  person Robert Harvey    schedule 30.04.2013
comment
Това няма никакъв смисъл, току-що заявих, че щракването върху добавяне на препратки в моя проект за библиотека от класове и търсенето на липсващите DLL не работи, тъй като те не съществуват в раздела .net или COM. Те се добавят автоматично в проекта ASP.net, но не и моята библиотека от класове. Също така използвам VS2010 на Windows 7 с ASP.net MVC3   -  person TheWebs    schedule 30.04.2013


Отговори (2)


Изглежда, че нямате инсталирана ASP.NET MVC рамка. Ако сте ги инсталирали, те трябва да се показват във вашия GAC (Global Assembly Cache), от който вашият „референтен изследовател“ изтегля своите dll файлове. Можете да получите достъп до gac чрез C:\Windows\Assembly.

person RiceRiceBaby    schedule 30.04.2013
comment
Имам го инсталиран, използвам го от VS2010 и използвах уеб, инсталиран от уеб матрица, за да инсталирам ASP.net MVC. Знам, че няма начин да създам и стартирам MVC проект без инсталиран. - person TheWebs; 30.04.2013
comment
Имам инсталиран ASP.net MVC3, според уеб инсталатора, но не виждам DLL като Web.security или web.MVC - person TheWebs; 30.04.2013
comment
Когато инсталирате ASP.NET MVC3, тези модули трябва да са били заредени в GAC (C:\Windows\Assembly). Моля, проверете дали са там. Ако не са в GAC, това означава, че нещо се е объркало по време на инсталацията и трябва да опитате да деинсталирате и преинсталирате MVC. - person RiceRiceBaby; 30.04.2013
comment
Има ли подпапка в C:\Windows\Assembly\GAC, в която трябва да са? ако не беше инсталиран, което е според уеб инсталатора, как бих могъл да създам нов MVC3 проект във VS (2010)? - person TheWebs; 02.05.2013
comment
C:\Windows\Assembly е GAC (Global Assembly Cache). Ако не е в тази папка, нещо се е объркало по време на вашата инсталация. Бих препоръчал да деинсталирате MVC, да изтеглите MSI файла и да го използвате, за да инсталирате MVC втори път. - person RiceRiceBaby; 02.05.2013

Работя по проект MVC3 и ние създадохме нашата проектна архитектура, за да поддържаме нашите класове нещо подобно:

  1. Моделните класове са на мястото си по подразбиране в MVC проекта.
  2. Добавихме новия проект Entity, който съдържа свойството, което съответства на имената на полетата (колоните) на базата данни.
  3. Отделен проект за (Достъп до данни по-късно) DAL и (Слой за бизнес достъп) BAL.

Сега как работи всичко:

Класовете на модела съдържат свойствата, които картографират свойствата в проекта Entity, а също и някои допълнителни свойства, които са ни необходими по време на нашата разработка като помощни свойства за напр. Свойство SubmissionType, за да проверите какъв тип подаване сме направили със същия метод на публикуване като Запазване, Актуализиране или Изтриване.

Проектът Entity ще съдържа само свойствата, които картографират имената на колоните в базата данни, а BAL ще взаимодейства с класовете на проекта Entity, за да получи или присвои стойностите, които се нуждаят от работа с база данни.

И класовете в проекта Entity ще получат или присвоят стойностите на/от класовете на модела. Това е всичко, защото основният ни проект може да има препратка към проекти на Entity и BAL, но не и обратното.

Добре сега въпросът е как ще се направят тези съпоставяния? Имам предвид присвояване на стойности от модел към класове Entity и обратно. За целта трябва да добавим dll в нашия проект „Omu.ValueInjecter“. който можете да изтеглите от тук. Просто трябва да го добавите в нашето приложение и то ще се погрижи за картографирането на нещата само в един ред като този:

      EmployeeEntities entity = new EmployeeEntities();
      entity.InjectFrom(model);

Тук присвоявам стойността от модел на обект, който получих от метода post. Сега този обект ще бъде предаден към BAL и от BAL към DAL. Чрез прилагането на това решение дори не е необходимо да премествате модела си извън проекта си, което е болезнено усилие, предполагам.

Надяваме се, че това решение ще ви помогне

person Jitender Kumar    schedule 01.05.2013