2012-03-02 4 views
0

Возможно ли это, я установил файл webconfig. Однако, пара веб-элементы управления используют ViewState [ «пункт»] ToString(), который теперь бросают следующую ошибку:.C# отключить viewstate, но все равно использовать ViewState ["item"]

Object reference not set to an instance of an object. 

Я попытался просто установив EnableViewState = «истинный» в заголовке веб-управления , но все равно получить ту же ошибку. Есть ли способ обойти это?

+1

проверки, если он не пуст? – AJP

+0

Крис, вы вызываете .ToString() на нулевом объекте, потому что ваш viewstats отключен. Проверьте, сначала ли это null, что вы должны сделать в любом случае, - тогда выясните, как получить выборочное представление. – n8wrl

+0

Привет, я использую .Net 4 Framework. Как вы получаете выборочное представление, когда вы выключаетесь на уровне webconfig? снова это возможно? cheers – Chris

ответ

2

Смотрите здесь: http://forums.asp.net/t/1378945.aspx/1

Вам необходимо включить его в заголовке страницы, а не управления.

EDIT: согласно http://forums.asp.net/t/1536937.aspx/1, возможно, вам потребуется включить его на уровне web.config и отключить его для каждой страницы, где вы этого не хотите.

+0

Я тоже пробовал это, но по-прежнему сталкивается с той же ошибкой – Chris

0

Если ViewState [ "Пункт"] никогда не был установлен, то, когда вы звоните

ViewState [ "Пункт"] ToString().

Вы эффективно вызываете null.ToString();

поэтому вам нужно сначала проверить значение null, или же всегда его устанавливать.

Вы могли бы использовать что-то вроде:

var item = ViewState["Item"]; 
string s = item == null ? string.Empty() : item.ToString(); 
Смежные вопросы