2012-11-29 2 views
0

웹 서비스에서 MVC 3 컨트롤러에서 예외가 발생하면 어떻게이 메시지를 사용자에게 표시하고 페이지로 돌아갈 수 있습니까?웹 서비스 예외를 사용자에게 표시하는 방법은 무엇입니까?

내가 사용자와 같은 뭔가를 보여주고 싶은

...

내가 사용자와 이미 존재하는 사용자의 이름을 만드는거야, 그래서 내가 함께 "(메시지와 함께 사용자가 예외를 던질 경우 이름 ... 이미 존재합니다 ') 그리고 나는이 컨트롤러를 예외로 잡아서 경고 또는 그와 비슷한 것으로 사용자에게 보여주고 싶습니다.

+0

당신이 사용자에게 메시지를 표시하고 페이지로 돌아가 무엇을 의미합니까? 경고 상자를 알고 싶습니까? 또는 오류가있는 새 페이지? 그런 다음 리디렉션 하시겠습니까? – ryadavilli

+0

응용 프로그램의 내부가 표시 될 수 있으므로 사용자에게 실제 예외를 표시하지 않으려는 _ _ 않습니다. –

답변

0

ModelState에 표시 할 오류를 추가해야합니다.

아마도보기에는 사용자에게 오류를 표시하는 @Html.ValidationSummary()이 있어야합니다.

사용자 이름 필드 근처에 오류 메시지를 표시하려면 필드 이름을 첫 번째 매개 변수로 전달해야합니다.

ModelState.AddModelError("Name", "..."); 

당신은 당신이 (내가이 선호하지 않는) 당신이 얻을 수있는 어떤 이유에 대한 경고 상자에 오류를 표시 할 경우 @Html.ValidationMessageFor(m => m.Name)

를 사용할 필요가보기에

즉, 뷰의 맨 아래에 작은 스크립트를 렌더링합니다. 컨트롤러에서 ViewBag를 통해 뷰에 오류를 전달해야합니다.

컨트롤러,

ViewBag.Error = "The user name already exists"; 

보기,

@{ 
    var error = ViewBag.Error; 
} 

<script type="text/javascript"> 
    var error = "@error"; 
    if(error) 
    alert(error); 
</script> 
+0

이마 감사합니다, 원했던 것입니다. 그러나 한 가지 더 질문이 있습니다.이 메시지를 경고 상자에 표시 할 수있는 방법이 있습니까? – user1863014

+0

업데이트 된 답변보기 – VJAI

+0

@ user1863014 왜 경고 상자를 사용하여 유효성 검사를 수행 하시겠습니까? 그러한 것들은 20 년 전에 금지 되었어야했습니다. [눈에 잘 띄지 않는 유효성 검사] (http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html)를 살펴보십시오. MVC에 꽤 많이 내장되어 있습니다. – CodeCaster

관련 문제