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