초급 질문 - 저는 HomeController, HomeModel 및 HomeView가 있습니다. 사용자가 http://page/Home
페이지를 방문하면 Index
메서드가 실행되고 일부 컨트롤을 채울 수 있습니다. 단추를 클릭하면 (다시 게시) 처리 과정이 실행되고 오류가 발생하면 응용 프로그램에서 ModelState.AddModelError
메서드를 호출합니다. 그런 다음 Index
작업이 다시 호출되고 페이지에 오류를 표시 할 수 있습니다.새로운보기를 반환 할 때 URL을 유지하는 방법
제대로 작동하지만 문제는 포스트 백 이후 새 URL이 http://page/Home
대신 http://page/Home/Index
인 것입니다. 어떤 생각이 어떻게 이것을 방지하기 위해?
PS - 난 this 솔루션을 시도하지만 새 URL은 http://page/Home?...long string of serialized ModelState data...
내 컨트롤러 같은했다 :
[HttpGet]
public ActionResult Index(MyModel model)
{
return View(model);
}
[HttpPost]
public ActionResult Process(MyModel model)
{
if (...error...)
{
model.SetErrorState();
ModelState.AddModelError("ProcessError", "error message");
return View("Index", model);
}
else
{
// do something...
model.SetSuccessState();
return View("Index", model);
}
}
내 질문에 실수를했습니다. 두 가지 방법 모두 'MyModel'과 동일한 유형의 매개 변수가 필요합니다. 이 문제를 해결하고 솔루션을 적용하면 컴파일러에서 'HomeController Type이 이미 동일한 매개 변수 유형의 Index라는 멤버를 정의합니다.'라는 오류가 발생합니다. – sventevit
@sventevit를 업데이트했습니다 :) (미사용)'FormCollection' var을 추가하여 구별하십시오. – scgough
완벽, 고마워요 :) @ scgough에 – sventevit