Исключение типа 'System.NullReferenceException ' произошло в myproject.DLL но не было обработано в коде пользователя

что означает эта ошибка означает?, Я продолжаю получать эту ошибку, она работает нормально, и она просто начала бросать эту ошибку.... любой помочь?

img1.ImageUrl = ConfigurationManager.AppSettings.Get("Url").Replace("###", randomString) 
 + Server.UrlEncode(((System.Web.UI.MobileControls.Form)Page.FindControl("mobileForm")).Title);

исключение типа System.NullReferenceException ' произошло в Мой проект.DLL но не был обработан в пользовательском коде

дополнительные сведения: ссылка на объект не указывает на экземпляр объект.

2 ответов


значит где-то в цепочке вызовов, вы пытались получить доступ к свойству или вызвать метод на объект, который был null.

учитывая ваше высказывание:

img1.ImageUrl = ConfigurationManager
                    .AppSettings
                    .Get("Url")
                    .Replace("###", randomString) 
                + Server.UrlEncode(
                      ((System.Web.UI.MobileControls.Form)Page
                      .FindControl("mobileForm"))
                      .Title);

Я предполагаю, либо вызов AppSettings.Get("Url") возвращает null, потому что значение не найдено или вызов Page.FindControl("mobileForm") возвращает null, потому что элемент управления не найден.

вы можете легко разбить это на несколько операторов, чтобы решить проблему:

var configUrl = ConfigurationManager.AppSettings.Get("Url");
var mobileFormControl = Page.FindControl("mobileForm")
                            as System.Web.UI.MobileControls.Form;

if(configUrl != null && mobileFormControl != null)
{
    img1.ImageUrl = configUrl.Replace("###", randomString) + mobileControl.Title;
}

это означает, что у вас есть нулевая ссылка где-то там. Можете ли вы отладить приложение и остановить отладчик, когда он доберется сюда и исследует? Вероятно img1 равно null или ConfigurationManager.AppSettings.Get("Url") возвращает null.