두 가지 모델이 있습니다. Person과 Ingredient 그리고 내가 원하는 것은 누구나 jQuery 자동 완성을 통해 재료를 선택하고 데이터를 입력 한 다음 저장합니다. 데이터베이스에.모델 개체에 대한 링크가있는 모델 추가 EFModelFirst
public class Person {
public int PersonID { get; set; }
[Required(ErrorMessage="Given name is a required field")]
[DisplayName("Given name")]
public string GivenName { get; set; }
[Required(ErrorMessage="Family name is a required field")]
[DisplayName("Family name")]
public string FamilyName { get; set; }
[Required(ErrorMessage = "Birthdate is a required field")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime Birthdate { get; set; }
[DisplayName("Ingredient")]
public virtual Ingredient Ingredient { get; set; }
}
그리고 :
그래서 이렇게 될 것
는public class Ingredient {
public int IngredientID { get; set; }
[Required(ErrorMessage = "Ingredient is a required field")]
[Remote("IngredientExists", "Person")]
public string Name { get; set; }
public virtual ICollection<Person> Persons { get; set; }
}
이제 내보기는 현재 다음과 같습니다 이
<div class="editor-label">
@Html.LabelFor(model => model.Ingredient)
</div>
<div id="ingredients-list" class="editor-field">
@Html.EditorFor(model => model.Ingredient.Name)
@Html.ValidationMessageFor(model => model.Ingredient.Name)
@ViewBag.IngredientError
</div>
(단지 성분 부분 니펫)
컨트롤러 :
//
// POST: /Person/Create
[HttpPost]
public ActionResult Create(Person person) {
if (ModelState.IsValid) {
db.People.Add(person);
db.SaveChanges();
return RedirectToAction("Index");
}
person.Ingredient.Name = "";
return View(person);
}
1 개의 것을 제외하고는이 모든 것은 작동합니다 (약간의 주요 쟁점), 드롭 다운에서 재료를 선택하면 사람을 저장하고 새 ID와 동일한 값으로 데이터베이스에 새로운 재료를 만듭니다 선택한 하나 (예 : 중복). 이제는 EF와 LINQ에 새로운 것이므로 아직 어떻게해야하는지 알지 못했습니다. 어떤 아이디어/솔루션이라도 대단히 감사하겠습니다!
을 Btw는. 비슷한 질문이 100 번 요청되었으므로 검색을 사용해보십시오. –