2012-12-05 3 views
0

내 모든 경로 : manage.cshtml에서ASP.NET MVC 4 유효성 검사 오류 표시되지

routes.MapRoute(
     name: "Login", 
     url: "{eid}/Login", 
     defaults: new { controller = "Account", action = "Login", eid = ConfigurationManager.AppSettings["Congress_Code"] } // Parameter defaults 
    ); 

    routes.MapRoute(
     name: "Account", 
     url: "{eid}/Account/{action}", 
     defaults: new { controller = "Account", action = "{action}", eid = ConfigurationManager.AppSettings["Congress_Code"] } 
    ); 

    routes.MapRoute(
     name: "Default", 
     url: "{eid}/{controller}/{action}", 
     defaults: new { controller = "Account", action = "Login", eid = ConfigurationManager.AppSettings["Congress_Code"] } 
    ); 

: 계정 컨트롤러에서

@using (Html.BeginForm(new { eid = ViewBag.EventId })) 
{ 
    @Html.ValidationSummary(false) 

:

// 
// GET: /Account/Manage 
//[AllowAnonymous] 
public ActionResult Manage(int eid, ManageMessageId? message) 
{ 
    ViewBag.StatusMessage = 
     (message == ManageMessageId.UpdateDetailsObjSuccess) ? "Your user details have been modified." 
     : ""; 
    return View(); 
} 

// 
// POST: /Account/Manage 
[HttpPost] 
public ActionResult Manage(UpdateUserDetailsModel model,int eid) 
{ 
    if (ModelState.IsValid) 
    { 
     var updateModel = AutoMapper.Mapper.Map<Models.UpdateUserDetailsModel,KPAD_Api.Kiosk.KioskUserDetailsExtended>(model); 
     try 
     { 
      long token = Proxy.Proxy.Instance.Token[KioskUser.Id]; 
      var result = Proxy.Proxy.Instance.KioskUserClient.UpdateKioskUser(updateModel, token); 
      if (result.ErrorCode == ReturnCodes.Codes.ALL_OK) 
       return RedirectToAction("Manage", new { Message = ManageMessageId.UpdateDetailsObjSuccess }); 
      else 
       ModelState.AddModelError(ReturnCodes.Instance.GetMessage(result.ErrorCode), new Exception(ReturnCodes.Instance.GetMessage(result.ErrorCode))); 
     } 
     catch (Exception e) 
     { 
      ModelState.AddModelError("Database error occured.Please contact the website administrator", e); 
     } 
    } 
    else 
    { 
     ModelState.AddModelError("An unknown error occurend. Please try again. If it persists please contact the admin.",new Exception("Unknown")); 
    } 
    // If we got this far, something failed, redisplay form 
    return View(model); 
} 

그러나 여전히 의도적으로 또는 자연적으로 예외가 발생할 때 유효성 검사 요약이 표시되지 않습니다. 누구에게 아이디어가 있습니까?

답변

0

는 manage.cshtml 이것은

을 시도

@using (Html.BeginForm(new { eid = ViewBag.EventId })) 
{ 
    @Html.ValidationSummary(true) 

제어기는 키 - 값 쌍의 오차 결합있어

[HttpPost] 
public ActionResult Manage(UpdateUserDetailsModel model,int eid) 
{ 
    if (ModelState.IsValid) 
    { 
     var updateModel = AutoMapper.Mapper.Map<Models.UpdateUserDetailsModel,KPAD_Api.Kiosk.KioskUserDetailsExtended>(model); 
     try 
     { 
      long token = Proxy.Proxy.Instance.Token[KioskUser.Id]; 
      var result = Proxy.Proxy.Instance.KioskUserClient.UpdateKioskUser(updateModel, token); 
      if (result.ErrorCode == ReturnCodes.Codes.ALL_OK) 
       return RedirectToAction("Manage", new { Message = ManageMessageId.UpdateDetailsObjSuccess }); 
      else 
       ModelState.AddModelError(ReturnCodes.Instance.GetMessage(result.ErrorCode), new Exception(ReturnCodes.Instance.GetMessage(result.ErrorCode))); 
     } 
     catch (Exception e) 
     { 
      ModelState.AddModelError("","Database error occured.Please contact the website administrator"); 
     } 
    } 
    else 
    { 
     ModelState.AddModelError("","An unknown error occurend. Please try again. If it persists please contact the admin."); 
    } 
    // If we got this far, something failed, redisplay form 
    return View(model); 
} 

있다.

관련 문제