Подтвердить что ты не робот

Элементы управления ASP.net не найдены в коде при реализации ресурсов

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

Когда ресурс добавляется в элемент управления 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 factory, добавленный в web.config:

 <globalization resourceProviderFactoryType="MyNamespace.SqlResourceProviderFactory" />

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

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

Спасибо заранее.

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Кроме того, вы пытались удалить свою папку "obj" и перестроить - иногда это работает для меня?

Ответ 6

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

CodeFile="xxxxxxxx.aspx.cs"

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

Ответ 7

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

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

Это также может произойти при переименовании файлов страниц. Двойная проверка в файле .aspx, что поля "CodeBehind =" и "Inherits =" верны:

<%@ 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" %>

Ответ 8

Можете ли вы сделать "чистое решение" и удалить временную папку asp.net в c-диске и сообщить мне, помогает ли это