2011-09-05 17 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

tryリターン詳細(_NieuweKlant.KlantId)の代わりにView( "Details"、_ NieuweKlant.KlantId)を試してください –

答えて

1

リダイレクトする場合は、このように、RedirectToActionを使用する必要があります。

:ページがこのパラメータをリダイレクトする際に読み込まれますように、我々は、IDアクション・パラメータを指定している第二引数として

Function Details(ByVal Id As Integer) As ActionResult 

もちろん、このリダイレクトは例外がスローされない場合にのみ発生します。

CreateアクションをAJAXで呼び出す場合は、リダイレクトの点で異なる可能性があります。

+0

私は既にRedirectToActionを試してみましたが、動作しませんでした。 Return View(オブジェクト)に戻しました。なぜなら、通常は正常に動作するからです。今のところは – NicoJuicy

+0

@NicoJuicy、RedirectToActionは動作するはずです。それがうまくいかないと言ったらどういう意味ですか?あなたはFireBugで何を見ますか?実行されているHTTPリクエストのシーケンスは何ですか? –

+0

ビューで返されずにリセットされたカスタム検証がありました。検証を削除すると修正されました。 あなたの答えは正しいかもしれませんが、それは私の特定の問題に対する答えではありません。 しかし、私はそれを受け入れるでしょう、それは最高の答えですから。 – NicoJuicy

関連する問題