0

Это действительно странно. Как мне кажется, я попытался создать проект/решение с именем MvcApplication с использованием Visual Studio 2015(Enterprise). Я выбираю шаблон MVC и оставляю все по умолчанию как есть.Почему я получаю ошибку CS0426, когда я даю название проекта «MvcApplication» с помощью ASP.Net?

Он успешно создан. Я создаю решение без каких-либо ошибок или предупреждений. Когда я запускаю проект (начинаю отладку), он загружает домашнюю страницу ASP.NET MVC, что хорошо. enter image description here

Когда я нажимаю Register сразу выдает CS0426 об ошибке: Имя Models типа не существует в типе MvcApplication.

в исходном файле где-то в папке temp. (Прилагается скриншот). enter image description here

До сих пор я пытался решить эту проблему с помощью следующих
1. Закройте решение и перезагрузки машины. (не работает)
2. Удалите весь временный файл (не работает)
3. Создайте другое приложение с другим именем (работало)
4. Добавьте новый проект в вышеупомянутое решение с тем же именем «MvcApplication» (тот же выпуск - не работает, но это доказывает, что есть проблема с именем MvcApplication.)
5. Google it (Не так много информации о ошибке CS0426). Это не имеет никакого смысла. (Почему?)
6. MSDN, StackOverflow, другие сообщения в блогах сообщают об ошибке, но не могут быть причиной или решением? все еще озадачен почему?

Хотелось бы мне помочь, но мне нужно подтвердить, что вы не можете назвать свой проект «MvcApplication» в своем решении и ожидаете работать. Я могу ошибаться. Но в этом случае мне нужно больше доказательств.

Любая помощь будет принята с благодарностью.

Спасибо.

ответ

0

Предположим Register вид имеет эту модель связывания:

@* Register view *@ 
@model MvcApplication.Models.RegisterViewModel 

Поскольку у вас есть MvcApplication, как/имя решения проекта (включая пространство имен проекта), можно иметь конфликт имен с MvcApplication класса, уже представленной в Global.asax когда это определение модели вид:

// Global.asax 
namespace MvcApplication 
{ 
    public class MvcApplication : System.Web.HttpApplication 
    { 
     // other stuffs here 
    } 
} 

// Model class 
namespace MvcApplication.Models // ==> potential naming collision when being used in view 
{ 
    public class RegisterViewModel 
    { 
     // some properties here 
    } 
} 

Чтобы избежать столкновения с MvcApplication класса показано, как выше, вы можете использовать global с полностью qualifi название изд как этот в странице просмотра:

@model global::MvcApplication.Models.RegisterViewModel 

или просто изменения имен проекта в другое имя.

Похожий вопрос:

The type name 'Models' does not exist in the type 'System.Web.Helpers.Chart'

+0

Спасибо за ценный вклад. – rlodhiya

+0

Вместо того, чтобы просто благодарить вас, потратьте немного времени на чтение http://stackoverflow.com/help/someone-answers, чтобы узнать, что вам следует делать, когда кто-то предоставляет помощь/объяснение. –

+0

Прошу прощения, я не могу голосовать по следующей причине. Спасибо за отзыв! Голоса, сделанные теми, у кого меньше 15 репутации, записываются, но не изменяют публично выставленный счет. – rlodhiya

 Смежные вопросы

  • Нет связанных вопросов^_^