У меня есть следующий вспомогательный метод, который возвращает значение из поля.
public static string GetValueFrom(SPListItem item, string fieldName)
{
string value = string.Empty;
if (item.Fields.ContainsField(fieldName))
{
SPField field = item.Fields.GetField(fieldName);
if (item[field.InternalName] != null)
{
value = item[field.InternalName].ToString();
}
}
return value;
}
Однако для одного поля (обычное поле выбора) я получаю ArgumentExecption для этой строки
if (item[field.InternalName] != null)
Я использую
SPListItem item = list.GetItemById(itemId);
Чтобы получить предмет.
Я не могу найти, почему я получаю исключение, когда проверяю, существует ли поле?
Любые идеи о том, почему я получаю это исключение только для одной области.
Обновление.
При отладке
Вызов GetField () возвращает правильный объект поля.
Field.InternalName содержит правильное внутреннее имя поля
Если я пытаюсь получить доступ к значению, используя item [«внутреннее имя поля»], оно все равно выдает исключение только для этого одного поля.