【发布时间】:2012-02-06 08:43:47
【问题描述】:
嘿,我有一个表,其中包含 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”的数据库模型是相同的。
编辑:
数据库架构:
表格项目
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>
【问题讨论】:
-
那么,您到底是从哪里得到这个错误的?我猜,它可能在 View 代码中,您可以假设 ViewData["Status"] 的类型为 Status,而您从控制器传入一个字符串。
标签: c# asp.net-mvc