Эй, у меня есть таблица с 2 полями типа int, которые являются "StatusID" и "TypeID". TypeID работает правильно, но StatusID возвращает ошибку. Вот как выглядит мой контроллер:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Project project)
{
var db = new DB();
if (ModelState.IsValid)
{
try
{
db.Projects.InsertOnSubmit(project);
db.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View(project);
}
}
ViewData["Status"] = from c in db.Status
select new SelectListItem
{
Text = c.Text,
Value = c.StatusID.ToString()
};
ViewData["Types"] = from t in db.Project_Types
select new SelectListItem
{
Text = t.Text,
Value = t.TypeID.ToString()
};
return View(project);
}
Я получаю ошибку:
Message = "Сбой преобразования параметра из типа 'System.String' в тип 'ConstructionProject.Models.Status', поскольку преобразователь TypeConverter между этими типами не может быть преобразован."
Но, как я уже сказал, модель базы данных для полей "TypeID" и "StatusID" идентична.
Edit:
Схема БД:
Таблица проекта
ProjectID int
TypeID int
StatusID int
Name varchar(50)
Description text
DateCreated datetime
ClientID int
Contractor int
Статус таблицы
StatusID int
Text varchar(50)
Таблица Тип проекта
TypeID int
Text varchar(50)
Кто-нибудь знает, что бы исправить проблему здесь?
Страница просмотра (после изменения StatusID):
<p>
<label for="Status">Status:</label>
<%= Html.DropDownList("StatusID")%>
<%= Html.ValidationMessage("StatusID", "*")%>
</p>
<p>
<label for="Types">Type:</label>
<%= Html.DropDownList("Types")%>
<%= Html.ValidationMessage("Types", "*")%>
</p>