public class Movies
{
[Key]
public int movieID { get; set; }
public String Title { get; set; }
public virtual Genres parentGenre { get; set; }
}
public class Genres
{
public Genres()
{
this.movies = new HashSet<Movies>();
}
[Key]
public int genreId { get; set; }
public String genreName { get; set; }
public ICollection<Movies> movies { get; set; }
}
我可以在我的addmovie視圖頁上通過閱讀流派表成功創建DropDownList。ASP MVC表外鍵配置
但是,當我嘗試提交頁面時,它聲明「值'10'是無效的。」這導致我相信我正試圖將一個Int(從下拉列表值)放入一個對象(來自「流派parentGenre」)。
我是否已經將「Genre parentGenre」設置爲正確的「genreId」外鍵關係,它只應該爲「parentGenre」字段指定一個「數字」還是期望更多?
補充說:
控制器:
[HttpPost]
public ActionResult Create(Movies movies)
{
if (ModelState.IsValid)
{
db.Movies.Add(movies);
db.SaveChanges();
return RedirectToAction("Index");
}
IEnumerable<SelectListItem> items = db.Genres
.Select(c => new SelectListItem
{
Value = SqlFunctions.StringConvert((double)c.genreId).Trim(),
Text = c.genreName
});
ViewBag.genreId = items;
}
觀點:
<div class="editor-label">
@Html.LabelFor(model => model.parentGenre.genreName)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.parentGenre,(IEnumerable<SelectListItem>)ViewBag.genreId)
@Html.ValidationMessageFor(model => model.parentGenre)
你如何發佈價值?你可以添加更多的控制器/視圖代碼,以便我們可以更好地瞭解發生了什麼? – antinescience 2013-03-24 20:44:08
添加到上面.... ty的回覆:) – user2182715 2013-03-24 20:53:36
在你的DropDownListFor,你有沒有嘗試過使用model.parentGenre.genreId?我相信MVC模型綁定,你實際上必須使用該屬性,否則它不知道該綁定到什麼。現在,它試圖將一個整數綁定到一個複雜的對象上,並且不改變模型綁定器,它不能實現這個飛躍。 – antinescience 2013-03-24 21:04:43