큰 모델을 뷰에 밀어 넣고 있지만 해당 뷰의 일부만 업데이트하고 목록에는 여러 부분 뷰가 있습니다.ModelState가 유효성을 검사하는 기본 모델을 변경합니다.
본질적으로 원래 모델을 업데이트하는 코드가 있지만 게시 된 부분이 아닌 업데이트 된 원래 모델에 대해 ModelState.IsValid를 실행하려고합니다.
[HttpPost]
public virtual ActionResult MyAction(MyFullModel sectionUpdates)
{
var updated = Session['original'] as MyFullModel;
for (var i=0; i<updated.Section.Count; i++)
{
var a = original.Section[i] as SubModel;
var b = sectionUpdates.Section[i] as SubModel;
if (String.IsNullOrWhiteSpace(a.Prop1))
{
a.Prop1 = b.Prop1
}
if (String.IsNullOrWhiteSpace(a.Prop2))
{
a.Prop2 = b.Prop2
}
...
}
// ??? How do I run ModelState.IsValid against original here ???
// this doesn't seem to work, the only the posted values are checked...
// ViewData.Model = model;
// ModelState.Clear();
// if (!TryUpdateModel(model))
// {
// //model state is invalid
// return View(secureFlightUpdates);
// }
}
나는 위의 "업데이트"없습니다 "sectionUpdates"에 대한 유효성 검사를 실행합니다.
원래 정보가 잘 업데이트되었지만 섹션 업데이트가 아닌 원본에 대한 유효성 검사를 실행해야합니다. 이미 a.Prop1이있는 것처럼 게시물보기에 입력 필드가 없습니다. 상대적으로 크기 때문에 숨겨진 필드를 필요없이 서버에 다시 게시하고 싶지는 않습니다. 이 어떤 모델을 검증 할 수
나는 혼란 스럽다. * 왜 * 업데이트 된 * 모델의 유효성을 검사하고 싶지 않으십니까? 원래 모델이 변경되지 않은 경우 왜 검증해야합니까? – TheCloudlessSky
@CloudlessSky 원본은 이제 업데이트 업데이트 ... 섹션으로 업데이트됩니다. – Tracker1
나는 지금 무슨 뜻인지 안다. 아래 내 게시물을 참조하십시오. – TheCloudlessSky