왜 편집 화면에 편집중인 값이 표시됩니까? 저장하려고하면 Edit HTTPPOST에 Null 개체가 있습니까?""값이 유효하지 않습니다.
오류 받기 내가 추적했지만 원인을 확인할 수 없습니다. 드롭 목록에 사용되는 클래스가 있으므로 AdvisoryTypeID 및 AdvisoryType 만 있습니다. 그러나 이제는 사용자가 그리드 (색인)에서 모두를보고 새로운 (만들기)를 추가하고 기존의 항목을 변경하는 (편집) 화면을 만들고 있습니다. 인덱스 화면은 DB에서 아무 문제없이 읽습니다. 편집도 마찬가지입니다. 만들기가 필요하지 않습니다.
그러나 편집과 작성 모두 HTTPPOST에서 동일한 오류를 표시합니다. 오류는 "내가 입력 한 값이 '유효하지 않음'입니다.
CONTROLLER (편집 게시물에 대한) 내가 편집 및 않는 다른 화면이를 비교 한
[Authorize]
[HttpPost]
public ActionResult Edit(AdvisoryTypes advisoryType)
{
try
{
if (ModelState.IsValid) //never get past this because it's null above
etc....
}
다음 "advisoryTypes"변수가 이해가 안 이유로 널 : 왜 코드가 켜져 디버깅 잘 만들고 똑같습니다 (예 : 필드 이름 제외). 나는 혼란 스럽다.
모델
public class AdvisoryTypes
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int AdvisoryTypeID { get; set; }
[Display(Name = "Type")]
[Required]
public string AdvisoryType { get; set; }
}
CONTROLLER
[Authorize]
public ActionResult Edit(int id = 0)
{
AdvisoryTypes advisoryType = db.AdvisoryType.Find(id);
if (advisoryType == null)
{
return HttpNotFound();
}
return View(advisoryType);
}
VIEW (편집을 위해 가져 오기)
model TheNewSolution.Models.AdvisoryTypes
@{
ViewBag.Title = "Edit Advisory Type";
}
<h2>Edit Advisory Type</h2>
@*<br />*@
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Advisory</legend>
<table>
<tr>
<td>
@Html.HiddenFor(model => model.AdvisoryTypeID)
<div class="editor-label">
@Html.LabelFor(model => model.AdvisoryType)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.AdvisoryType)
@Html.ValidationMessageFor(model => model.AdvisoryType)
</div>
</td>
</tr>
</table>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
PART TWO 이제 몇 가지 이상한 배경이 첫 번째 모델/컨트롤러 /이다 EF를 5에서 6 alpha3로 업데이트 한 이후로 만들었습니다 (같은 프로젝트에서 POCO 및 edmx를 이것은이 버그를 해결했습니다). 수동으로 모델을 만들었습니다. 마법사를 통해 컨트롤러를 만들려고하면 "ProjectName.Models.AdvisoryProviders에 대한 메타 데이터를 검색 할 수 없습니다."라는 오류 메시지가 나타납니다. 'System.Data.Entity.Core.Objects.ObjectContext'형식의 obect를 입력 할 수 없습니다. 'System.Data.Objects.ObjectContext'. "
결과로 다른 것을 복사/붙여 넣기하고 변경 한 다음 수동으로 내보기를 만드는 등의 작업을 수동으로 컨트롤러를 작성해야했습니다. 나는 이것 모두가 관련되어 있지만 어쩌면 의심 스럽다. 이것이 관련이 없다는 것을 입증하면 나는 이것을 제거하고 또 다른 질문으로 게시 할 것입니다.
유형의 개체를 캐스팅 할 수 없습니다 ... EF6 및 EF5를 혼합하는 것 같습니다. 불행하게도 그것은 불가능합니다. 나는 MVC가 현재 EF6를 지원한다고 생각하지 않는다. – Pawel