2011-09-05 33 views
2

創建對象後,儘管對象已正確創建,但我的頁面不會繼續到詳細信息頁面。ASP.Net MVC 3 - 成功創建後沒有詳細信息重定向

以下是我的代碼:

Function Create(ByVal collection As FormCollection) As ActionResult 
     Dim _NieuweKlant As New Domain.Slave.Klant 
     Try 

      If ModelState.IsValid Then 

       TryUpdateModel(_NieuweKlant, collection) 

       _NieuweKlant.UpdatedON = Now 
       _NieuweKlant.LaatsteWijzigingGebruiker = Now 
       '_NieuweKlant.LaatsteActie = Now 

       KlantService.createKlant(_NieuweKlant) 
       KlantService.SaveKlant() 

       'check validstate 

       Return Details(_NieuweKlant.KlantID) 
      End If 

     Catch ex As System.Data.Entity.Validation.DbEntityValidationException 
      Dim Errors = ex.EntityValidationErrors.First 
      For Each propertyError In Errors.ValidationErrors 
       ModelState.AddModelError(propertyError.PropertyName, propertyError.ErrorMessage) 
      Next 
      Return View(_NieuweKlant) 
     Catch ex As System.Data.Entity.Infrastructure.DbUpdateException 
      Return View(_NieuweKlant) 
     Catch Ex As Exception 
      '  Console.Out.Write("Bericht:" & vbCrLf & Ex.Message) 
      ' Console.Out.Write("InnerException: " & vbCrLf & Ex.InnerException.ToString) 
      Return View() 
     End Try 
    End Function 

我也已經嘗試RedirectToAction和調試的時候似乎沒有是一個錯誤。它只是不會重定向或轉到其他操作。

+0

您是否遇到異常?如果不是,則呈現什麼視圖? – krolik

+0

嘗試返回查看(「詳細信息」,_ NieuweKlant.KlantId)而不是返回詳細信息(_NieuweKlant.KlantId) –

回答

1

如果你想重定向你需要使用RedirectToAction,像這樣:

由於我們指定id動作參數中的第二參數,所以,當頁面重定向這個參數被填充:

Function Details(ByVal Id As Integer) As ActionResult 

當然,只有在沒有拋出異常的情況下,這種重定向纔會發生。

這就是說,如果你正在調用與AJAX Create行動的事情可能會有所不同重定向

+0

我知道,我已經嘗試過RedirectToAction,但它不起作用。 我改回它返回視圖(對象),因爲這通常工作,除了現在:) – NicoJuicy

+0

@NicoJuicy,RedirectToAction應該工作。當你說它不起作用時,你的意思是什麼?你在FireBug中看到什麼?什麼是正在執行的HTTP請求的順序? –

+0

有一個自定義驗證沒有在視圖中返回,然後重新設置。刪除驗證修復了它。 此外,雖然你的答案可能是正確的,但它不是我的具體問題的答案。 但我會接受它,因爲這是最好的答案。 – NicoJuicy