2010-07-16 3 views
1

RedirectToAction이 제대로 작동하고있는 것으로 (즉, 리디렉션 된 동작이 실행 됨) 특정 뷰가 클라이언트 측에서 렌더링되지 않고 URL이 다시 작성되지 않는 문제를 디버깅하려고합니다. 내 질문은 정말 어디에서 이것을 디버깅 할 수 있습니까? 여기 코드는 다음과 같습니다RedirectToAction을 디버깅하는 방법

형태 :

<%using (Html.BeginForm("Save", "Items", FormMethod.Post, new {id="ItemForm"})) {%> 
    <%=Html.AntiForgeryToken()%> 
    ..form contents elided... 
     <%= Html.Button("btnSave", ViewData.Model.SaveMethod, HtmlButtonType.Submit) %> 
     <%= Html.Button("btnCancel", "Cancel", HtmlButtonType.Button, 
           "window.location.href = '" +  Html.BuildUrlFromExpressionForAreas<ItemsController>(c => c.Index()) + "';") %>  
<% } %> 

컨트롤러 :

[ValidateAntiForgeryToken] 
    [Transaction] 
    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Save(Item item) 
    { 
     if (item.Id == Guid.Empty) 
      return Create(item); 

     return Edit(item); 
    } 

    [ValidateAntiForgeryToken] 
    [Transaction] 
    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(Item item) 
    { 
     if (ViewData.ModelState.IsValid) 
     { 
      ActionConfirmation updateConfirmation = 
       _itemManagementService.UpdateWith(item, item.Id); 

      if (updateConfirmation.WasSuccessful) 
      { 
       TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = 
        updateConfirmation.Message; 
       return RedirectToAction("Index"); 
      } 
     } 

     ItemFormViewModel viewModel = 
      _itemManagementService.CreateFormViewModelFor(item, _indicatorManagementService, _strategyManagementService); 
     return View(viewModel); 
    } 

    [Transaction] 
    public ActionResult Index() 
    { 
     ItemsFormViewModel viewModel = _itemManagementService.CreateListFormViewModel(_indicatorManagementService, 
                         _strategyManagementService); 
     return View(viewModel); 
    } 

나는 사용자 정의 모델 바인더를 사용하고 있지만, model.IsValid가 true를 반환하고 모델의 변경이 성공적으로 저장합니다. 나는 이걸 추적 할 곳을 잃어 버렸어.

감사합니다.

답변

0

항상 그렇듯이 게시하는 즉시 마침내 알아냅니다. 제출을 하이재킹 한 이전 접근에서 jquery를 남겨 두었습니다.