Я работаю над сайтом MVC 4, который использует области, позволяет называть его «MyMVC».Пространство имен в MVC 4
Как и в большинстве проектов MVC, в корне сайта есть папка под названием «Модели».
В этом каталоге «Модели» есть класс «MyViewModel.cs», который содержит открытый класс «MyViewModel» с пространством имен «MyMVC.Models».
Теперь, в одной из областей, назовите это «Area1», существует также типичная структура MVC, которая также содержит каталог под названием «Модели». Он также содержит класс «MyViewModel.cs», который также содержит класс «MyViewModel», на этот раз с пространством имен «MyMVC.Areas.Area1.Models».
Внутри зрения я работаю на том, что находится внутри директории «Area1 \ Views» У меня есть на вершине:
@model MyMVC.Areas.Area1.Models.MyViewModel
@using MyMVC.Areas.Area1.Models
Когда я ссылаться на на MyViewModel как так, например:
MyViewModel mvm = new MyViewModel();
Я получаю неоднозначное ошибку, и думает, что я имею в виду другой класс MyViewModel хотя, как вы можете видеть, что я четко указано в директиве @model и директивы @using которой я имею в виду.
Может ли кто-нибудь объяснить, что такое двусмысленность?
Это на вид. Кроме того, контроллер ссылается только на второй, хотя я не вижу связи между контроллером и представлением таким образом. –
Во взгляде? Вы создаете экземпляр модели представления в представлении ??????? WOW, вы должны делать что-то очень плохое. Во всяком случае, одно и то же замечание верно для представления. Вам необходимо полностью квалифицировать тип модели, чтобы избежать возможной двусмысленности компилятора C#. –
Я не делаю этого буквально. Я просто использовал пример. Фактически я использую общий (сетка кендо, если вы знаете), и у него есть проблема. =) –