2
DB에 8 개의 소품/8 개의 열을 가진 클래스가 있습니다. 하지만 편집 페이지에서 사용자가 변경하려고하지 않기 때문에 AddDate 또는 UserID 필드를 표시하고 싶지 않습니다. 여기 asp.net mvc3 UpdateModel 제외 속성이 작동하지 않습니다.
public class Voucher
{
public int ID { get; set; }
public string Title { get; set; }
public string SiteName { get; set; }
public string DealURL { get; set; }
public DateTime AddedDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public string VoucherFileURL { get; set; }
public Guid UserID { get; set; }
}
내가 편집 컨트롤러가 무엇 : System.Data.SqlServerCe.SqlCeException : 내가 제출을 클릭하면 편집 페이지에서
// POST: /Voucher/Edit/5
[HttpPost]
public ActionResult Edit(Voucher voucher)
{
if (ModelState.IsValid)
{
string[] excludeProperties = { "AddedDate", "UserID" };
UpdateModel(ModelState, "", null, excludeProperties);
db.Entry(voucher).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(voucher);
}
, 나는 다음과 같은 오류가 발생했습니다 오버플로가 발생했습니다 datetime으로 변환하는 동안
AddedDate가보기 모델에서 제외되지 않아 오류가 발생했습니다.
수정 방법을 알려주십시오. 감사!
public ActionResult Edit([Bind(Exclude = "AddedDate")]Voucher voucher)
거기에 해당 필드를 포함 할 수있는 행운 중 하나
을 나는 STH를 오해 생각 나는 그들이 모두 8 개 특성을 가지고, 바우처 객체가 ModelState과 동일합니다 생각 그래서 난.. 바우처가 저장 될 때 ModelState에서 2 개의 속성을 제외하고자했습니다 –
모델의 유효성을 검사하는 경우 modelstate는 상태가 아닙니다. 바우처를받을 때까지 MVC는 유효성을 검사하고 유효성 검사 결과를 modelstate로 보냅니다. UpdateModel은 게시 된 또는 URL 값으로 '일부 모델 객체를 업데이트'할 때 사용됩니다.이 경우 UpdateModel은 updatemodel에 전달됩니다. 당신은 이미이 속성들을 가진 바우처라는 객체를 이미 받았습니다. –
사용자가 바우처를 편집 할 때 추가 된 사용자 ID 또는 사용자 ID를 보거나 변경할 수 없습니다. 따라서 Edit 컨트롤러로 전달 된 Voucher Object는 반드시 addedDate 또는 UserID에 대한 값을 포함하지 않습니다. 바우처 객체가 db에 저장되면 오류가 발생합니다. 그것을위한 어떤 해결책? 당신이 이해하기를 바랍니다. 감사. –