ViewModel을 사용하는 폼보기가 있습니다. 새 뷰는 "새로 만들기"작업에 의해 렌더링됩니다. 이 양식이 제출되면 정보를 "추가"작업으로 되돌려 보냅니다.ASP.Net MVC 반환 작업에 리디렉션을 사용하는 대신 모델의 새 인스턴스로보기
DB에 대한 모든 작업이 성공적으로 수행되면보기를 새로 고침하고 싶습니다. "Add"액션 내부에서 viewmodel의 새 인스턴스를 만들고 View ("New", viewModel)를 반환합니다. 이건 내 견해를 새롭게하지 않습니다. 제출 된 모든 이전 값은 뷰에 남아 있습니다. RedirectToAction 메서드없이 페이지를 새로 고치는 방법이 있습니까?
다른 게시물에서 나는 바람직하지 않은 결과를 가져올 수 있으므로 ModelState.Clear를 사용하면 안됩니다.
, 당신을 감사월
편집 1 - 코드 추가는 값
New
public ActionResult New(string id)
{
var sysId= new Guid(id);
.......
........
string Details = pDto.Name + "(" + pDto.Code + ")";
var vm= new ViewModel(id);
vm.Details = Details;
return View(vm);
}
public ActionResult Add(ViewModel vm)
{
ViewModel vm= vm;
if (ModelState.IsValid)
{
var dto= _qRepository.GetFeaturesBy(viewModel.Code);
if (dto!= null)
{
ModelState.AddModelError("Code", "Code is already in Use.");
return View("New", viewModel);
}
_productService.AddFeature(..........);
// ModelState.Clear(); -- this works
vm= new ViewModel(vm.pId) { Message = "Code" + viewModel.Code + " was added ......", Details = vm.Details };
}
return View ("New", vm);
}
현재 수행중인 작업에 대한 코드를 게시 할 수 있습니까? –
코드를 게시했습니다 - – TheMar