아래의 편집 작업은 편집보기 형식으로 전환됩니다. 그러나 두 번째 방법에 게시하려면 내보기 페이지에서 제출을 누르면 companyToEdit 구조에 companyID가 포함되지 않고 예외가 발생합니다. 이것은 이상한 일입니다. 이전에이 작업을 수행했고 다른 인스턴스에서 id 필드를 얻었습니다. 내가보기에 아래의 코드 섹션 넣으면왜 내 ASP.NET MVC 응용 프로그램의 편집 코드가 작동하지 않습니까?
:
<p>
<label for="CompanyID">CompanyID:</label>
<%= Html.TextBox("CompanyID", Model.CompanyID) %>
<%= Html.ValidationMessage("CompanyID", "*") %>
</p>
를 그 다음은 잘 작동합니다. 그러나 회사 ID가 읽기 전용 필드이므로 작업을 중단합니다. 어떤 아이디어?
//
// GET: /Company/Edit/5
public ActionResult Edit(int id)
{
var companyToEdit = _repository.GetCompany(id);
return View(companyToEdit);
}
//
// POST: /Company/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Company companyToEdit)
{
if (!ModelState.IsValid)
return View();
try
{
_repository.Update(companyToEdit);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
편집 2 : 는 나는 이와 비슷한 일을하고 아래와 같은 해시 값의 ID를 숨길 수 있습니다 같아요. 나는 이것이 우리가 가장 안전하고 덜 복잡해질 궁극적 인 해결책이라고 생각한다.
<input id="fkey" name="fkey" type="hidden" value="4a3d337bf38b35e9ff4167cfa878160b">
OP는 어떤 형태로든 페이지에 ID를 쓰지 않기를 원합니다. –