MVC3 C# .Net 웹 응용 프로그램이 있습니다. Excel에서 가져 오기 기능이 있습니다. 이 기능은 Rate 컨트롤러의 Import 메서드에서 수행됩니다. 요율/가져 오기보기에서 볼 수 있습니다. 가져올 때 일부 행은 성공적이지만 일부는 성공적이지 않습니다. 문자열 배열로 오류를 수집하고 있습니다. 하나 이상의 행을 성공적으로 가져 오면 가져 오기가 성공한 것으로 간주되므로 앱이 제안서 편집보기로 다시 이동합니다. 정보 오류를 제안서 편집보기로 다시 전달하여 표시하려고합니다. 이 작업을 수행하는 방법은 무엇입니까?한 컨트롤러에서 다른보기 및/또는 컨트롤러로 MVC3 메시지 전달
0
A
답변
3
몇 가지가 있습니다.
TempData는
이 컨트롤러에서 사용할 수 있습니다. TempData는 단일 리디렉션을 통해 지속됩니다.
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
TempData["errors"] = errors;
return RedirectToAction("Edit");
}
public ActionResult Edit()
{
var errors = (IEnumerable<string>)TempData["errors"]; // Get the errors back.
return View(errors); // Pass into the view
}
ModelState
당신은 ModelState에 직접 이러한 오류를 추가 한 다음 편집 양식을 다시 표시 할 수있다. 리디렉션에서 지속되지 않습니다.
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
for(var i = 0; i < errors.Length; i++)
{
ModelState.AddModelError("row" + i, errors[i]);
}
// Can't redirect here - ModelState doesn't persist.
return View("Edit");
}
그런 다음 편집보기에서 바로 확인 요약을 표시 :
@Html.ValidationSummary("The following row errors occured:");
이이 HTML 렌더링됩니다. 클래스는 MVC에 의해 설정된 기본 클래스입니다.
<div class="validation-summary-errors">
<span>The following row errors occured:</span>
<ul>
<li>...Error 1...</li>
... Other errors ...
</ul>
</div>
관련 문제
- 1. 루트보기 컨트롤러에서 다른보기 컨트롤러로 메시지 전달
- 2. 한 컨트롤러에서 다른 컨트롤러로 오류 메시지 전달
- 3. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 부동을 전달
- 4. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 배열 전달
- 5. MVC3 컨트롤러에서 다른 컨트롤러로 데이터 전달
- 6. 한 컨트롤러에서 다른 컨트롤러로 검색 결과 전달
- 7. 한 컨트롤러에서 다른 컨트롤러로 데이터 전달
- 8. 한 컨트롤러에서 다른 컨트롤러로 플래시 해시 전달
- 9. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 레이블 내용을 옮기기
- 10. UIImage를 다른보기 컨트롤러에 전달
- 11. 글로벌 기능 MVC3 다른보기
- 12. 보기에서 컨트롤러로 MVC3 면도기 모델 전달
- 13. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 버튼을 밀어 넣는 방법
- 14. 다른보기 컨트롤러에서 async asihttp를 호출하십시오.
- 15. MVC3 (면도기) 모델 데이터를 뷰에서 컨트롤러로 전달
- 16. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 데이터 전달. iOS <= 4 대 iOS 5
- 17. 다른보기 컨트롤러에서 UINavigationController의 pushViewController
- 18. 보기에서 컨트롤러로 양식 데이터 전달 및 asp.net mvc3 데이터베이스에 저장
- 19. MVC 컨트롤러에서 다른보기 반환
- 20. ASP.Net MVC - 한 컨트롤러에서 다른 컨트롤러로 게시
- 21. 한 컨트롤러에서 다른 컨트롤러로 리디렉션 제어
- 22. 모델에서 컨트롤러로 변수 전달
- 23. 탭 표시 줄 컨트롤러 내에서 한 뷰 컨트롤러에서 다른보기 컨트롤러로 어떻게 이동하여 탭 표시 줄을 유지합니까?
- 24. 변수를 뷰 컨트롤러로 전달
- 25. 일반 뷰 컨트롤러에서 자세히보기 컨트롤러로 UItableview 푸시
- 26. 컨트롤러에서 컨트롤러로 데이터를 전달합니다.
- 27. 컨트롤러에서 뷰로 데이터를 전달, 컨트롤러로 돌아 가기, 뷰로 돌아 가기
- 28. 다른보기 컨트롤러로 전환 한 후보기 컨트롤러 데이터 유지
- 29. EditorFor에서 컨트롤러로 값을 전달
- 30. 다른보기 컨트롤러에서 이벤트 가져 오기
"앱이 제안서 편집으로 돌아갑니다"라는 말은 양식을 제출 한 후 리디렉션을하고 있다는 것을 의미합니까? 그렇다면 정보를 저장할 수있는 유일한 장소는 세션 또는 쿠키에서 ID를 다른 컨트롤러로 전달하여 문자열을 조회하는 데이터베이스에 있습니다. ViewBag/ViewData 수명주기는 요청 수명과 함께 종료됩니다. 리디렉션은 브라우저에서 새로운 "요청"을 만듭니다. –