Вот фрагмент моего кода:
else
{
SubCategory subCat = new SubCategory
{
SubCategoryName = name,
Active = false,
CategoryID=Convert.ToInt32(ddlCategory.SelectedValue)
};
db.SubCategories.InsertOnSubmit(subCat);
}
db.SubmitChanges();
Следующая строка вызывает ошибку:
CategoryID=Convert.ToInt32(ddlCategory.SelectedValue)
Я подтвердил, что SelectedValue в моем DDL является int,и что база данных ожидает int, поэтому я не понимаю, почему asp.net дает мне YSOD, говорящий «Входная строка была не в правильном формате.»
Если я назначаю CategoryID номер вручную, этоработает.
РЕДАКТИРОВАТЬ: Проблема была в том, что я заполнял выпадающий список в моем коде позади, и я не заключил его в (! IsPostBack).Таким образом, он уничтожал список, заново заполнял его и устанавливал индекс в 0 каждый раз при обратной записи.