NullReferenceException в пользовательском IModelBinder
Я пытаюсь реализовать свой собственный ModelBinder с использованием MVC4 в.NET 4.5, но получаю самую странную ошибку. Мой код выглядит ок. как это
TableViewModelModel: IModelBinder
public object BindModel(ControllerContext ctx, BindingContext btx)
{
IEnumerable<String> sSearch = ctx.HttpContext.Request.Params.Keys.OfType<String().Where(key => key.StartsWith("sSearch_"));
...
}
NullReferenceException уже выдается в первой строке, но ни одно из свойств не является фактически нулевым (все они появляются в отладке intellisense). В отчаянии я решил избавиться от некоторых свойств, чтобы лучше рассмотреть, где выбрасывается исключение, и обнаружил, что виновником является свойство Params. Что действительно странно, так это то, что все ключи из строки запроса перечислены в окне отладки, но, тем не менее, создается исключение. Мне действительно нужна помощь в этом один народ!
Благодарю.
1 ответ
Обнаружил ошибку с помощью Reflector и проанализировал трассировку стека. Оказывается, что где-то в стеке вызовов HttpRequest.Params пытался прочитать свойство Identity моего объекта Principal (HttpContext.User). У меня есть собственная реализация IPrincipal, которая не инициализирует объект Identity - и вот, у вас есть.
Большое спасибо тем из вас, кто нашел время, чтобы прочитать мой вопрос.