Я использую nhibernate и mvc3 в asp.net
Я пытаюсь добавить данные в таблицу, где моя схема таблицы выглядит следующим образом:
public class HobbyMasters
{
[Key]
public virtual int HobbyId { get; set; }
[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "NameRequired")]
public virtual string HobbyName { get; set; }
public virtual HobbyTypes HobbyType { get; set; }
[Required]
public virtual string HobbyDetails { get; set; }
[Required]
public virtual ICollection<HobbyMasters> HobbyNames { get; set; }
}
public class HobbyTypes
{
[Key]
public virtual int HobbyTypeId { get; set; }
[Required]
public virtual string HobbyType { get; set; }
public virtual ICollection<HobbyTypes> Hobby { get; set; }
}
в моем контроллере
public ActionResult Create()
{
ViewBag.c1 = (ICollection<HobbyTypes>)(new Hobby_MasterService().GetAllHobbyTypes());
return View();
}
//
// POST: /Hobbies/Create
[HttpPost]
public ActionResult Create(HobbyMasters hobby)
{
ViewBag.c1 = (ICollection<HobbyTypes>)new Hobby_MasterService().GetAllHobbyTypes();
try
{
if (ModelState.IsValid)
{
new Hobby_MasterService().SaveOrUpdateHobby(hobby);
return RedirectToAction("Index");
}
}
}
в представлении:
@using (Html.BeginForm("Create", "Hobbies", FormMethod.Post))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Hobby Master</legend>
<div class="editor-label">
@Html.LabelFor(model => model.HobbyName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.HobbyName)
@Html.ValidationMessageFor(model => model.HobbyName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.HobbyType)
</div>
<div class="Editor-field">
@Html.DropDownListFor(model =>model.HobbyType.HobbyTypeId, new SelectList(ViewBag.c1, "HobbyTypeId", "HobbyType"), "-- Select --")
@Html.ValidationMessageFor(model => model.HobbyType)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.HobbyDetails)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.HobbyDetails)
@Html.ValidationMessageFor(model => model.HobbyDetails)
</div>
</fieldset>
<p><input type="Submit" value="Create" /> </p>
}
Очевидно, я обнаружил, что My Modelstate.IsValid всегда ложно .....
так как он хранит только HobbyId и получает Hobby Type как нуль объект HobbyMasters hobbytype .....
не знаю, где я иду не так, может быть в выпадающем списке или что-то еще .....
Пожалуйста, помогите мне как можно скорее: (