why this line:
var category = _dataContext.Categories.Where(p => p.Keywords.Split(\' \').Contains(context.Request.QueryStrin
It's probably the case that context.Request.QueryString["q"]
returns a string array instead of a single string. This is because a url may contain multiple parameters with the same name.
If you are sure there is always just one parameter named q on the request, you can change your code to this: context.Request.QueryString["q"].SingleOrDefault()
.