12

Поскольку мы внедряем глобализацию на нашем веб-сайте ASP.NET , мы получаем некоторые проблемы с intellisense.Элементы управления ASP.net не найдены в коде при реализации ресурсов

Когда ресурс добавлен в элемент управления asp.net, мы получаем ошибки. Несмотря на то, что ошибка отображается в visual studio, приложение работает!

Например, следующая кнопка

<asp:Button runat="server" ID="BtnSave" Text="<%$ Resources:ResourceName, Save %>" OnClick="BtnSave_Click" /> 

не признается в коде позади:

intellisense problem

Ошибка отображается только когда код позади открыт. Но в браузере это работает!

Та же кнопка без ссылки на ресурс работает хорошо:

<asp:Button runat="server" ID="BtnSave" Text="Save" OnClick="BtnSave_Click" /> 

Это пользовательские SQL поставщика ресурсов завода, добавил в web.config:

<globalization resourceProviderFactoryType="MyNamespace.SqlResourceProviderFactory" /> 

Я попытался удаление кэша и перезагрузите компьютер.

Есть ли у вас какие-либо советы о том, как найти проблему?

Заранее спасибо.

+0

Он отображается в файле 'aspx.designer.cs'? – dtsg

+0

нет файла дизайнера, так как это веб-сайт, а не веб-приложение – Schiavini

+0

очистить решение и перестроить его. –

ответ

0

В нашем поставщике ресурсов возникла проблема: он компилировался и работал во время выполнения, но сбой при работе без контекста HTTP (HttpContext.Current).

Я бы посоветовал другим людям испытать ту же проблему, чтобы проверить классы, используемые в их файле web.config, для таких несоответствий.

3

Если бы это было несколько раз, но я не относился к глобализации.

Я всегда решал это путем перезапуска VS (похоже, вы это пробовали) или проверки имен классов в коде переднего конца и обратно и в коде одинаковы.

Это звучит глупо, но если вы скопируете страницу, то имя класса не будет обновляться, поэтому привязки будут немного скорбными (это технический термин).

Может не помочь, но это что-то проверить.

+0

Это происходит на каждой странице :( – Schiavini

1

Попробуйте очистить свой темп скомпилирован кэш страницы, оба 32-разрядные и 64-разрядные соответствующие каталоги (64-разрядное показано ниже):

%System Drive%:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

Это иногда может сделать трюк

+0

«Я попытался удалить кеш и перезагрузить компьютер». – Schiavini

+0

есть также временная папка файлов ASP.NET в папке «Пользователи/AppData» - вы очистили это для своего пользователя и для любого пользователя IIS AppPool accts? –

+0

любая причина для downvote? Если мой ответ вводит в заблуждение или полностью бесполезен, было бы хорошо знать –

1

Можете ли вы попробовать с помощью ссылки на неявные ссылки на ресурсы, чтобы узнать, помогает ли это, а не явная ссылка, которую вы используете?

http://msdn.microsoft.com/en-us/library/ms227427.aspx

Кроме того вы пробовали удалить свой «Obj» папку и восстановление - иногда это работает для меня?

1

У нас была эта проблема, когда содержимое страницы .aspx было скопировано навалом, а новое - в 2.ASPX файлы, указывающие на тот же код за

CodeFile="xxxxxxxx.aspx.cs" 

Это проявляется в том же образом, ошибка брошена, остановили сборку, но комментировать его, строить, а потом комментировать его обратно и сайт и функциональность побежали отлично.

+0

Это происходит на каждой странице с глобализацией. – Schiavini

0

Можете ли вы сделать «чистое решение» и удалить временную папку asp.net в диск и дайте мне знать, если это помогает

+0

Я уже пробовал это, см. вопрос ... – Schiavini

+0

У вас есть 2-3 идеи. Попробуйте использовать <%= %> ". Если это не поможет, предложите что-нибудь другое –

+0

Это должен быть комментарий. – pqsk

6

У меня была эта проблема, когда я создал новое решение VS2010 и потащил в существующий Веб-сайт. Чтобы решить это, щелкните правой кнопкой мыши по проекту и «« Преобразовать в веб-приложение », который создаст файлы дизайнеров и устранит проблемы с intellisense.

+0

это сработало для меня! спасибо! – ErocM

+0

решение в течение всего дня отлично работало вам огромное спасибо! – math487

+0

Работает в Visual Studio 2012 в течение 2015 года. Это разрешение остается в силе. –

1

Обычно это может быть исправлено чистым и восстановленным.

Если это не сработает, попробуйте добавить что-то к разметке или дизайну, чтобы принудительно восстановить файл конструктора.

Это также может произойти при переименовании файлов страниц. Дважды проверьте в файле .aspx, что «CodeBehind =» и «наследуется =» поля являются правильными:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebPagName.aspx.cs" Inherits="NameSpace.ClassName" %> 

Например, если ваше имя веб-страница WebPage1 и имя вашего класса в файле WebPage1.aspx.cs это WebPage1, и ваш проект называется Project1, тогда он может выглядеть так:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebPage1.aspx.cs" Inherits="Project1.WebPage1" %>