Элементы управления 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" />
Я попытался удалить кеш и перезагрузить компьютер уже.
Есть ли у вас какие-либо советы о том, как найти проблему?
Спасибо заранее.
Ответы
Ответ 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-диске и сообщить мне, помогает ли это