2012-04-09 3 views
1

Ich habe ein Problem mit ASP.net-Umleitung.Seite wird nicht umgeleitet

Die folgende Copy() Methode wird von einem Javascript-Button in einem Raster mit Ajax aufgerufen und es funktioniert gut. Es leitet an die Create Aktion des Controllers um.

<AcceptVerbs(HttpVerbs.Post)> _ 
Sub Copy(ByVal noDemande As Integer) 
    Response.Redirect("/DemandeDeMontage/Create/" & noDemande) 
End Sub 

Die Create Aktion ist eine Seite, die mir die Felder bearbeiten können, bevor sie in der Datenbank zu speichern. Wenn ein Id übergeben wird, werden die Felder mit den Informationen eines anderen Datensatzes (kopierte Informationen) gefüllt.

<AcceptVerbs(HttpVerbs.Get)> _ 
Function Create(Optional ByVal id As Integer? = Nothing) As ActionResult 
    If (id Is Nothing) Then 
     Dim dmd As New DEMND_MONTG 
     Return View("Edit", dmd) 
    Else 
     Dim dmd As ODCT0124_DEMND_MONTG = _dmdMontRep.getDmdById(id) 
     dmd.CO_STAT = ModuleCommon.Status.AwaitingSave 
     Return View("Edit", dmd) 
    End If 
End Function 

Im obigen Code sind keine Fehler enthalten.

Beim Debuggen scheint alles zu funktionieren. Die Copy Aktion wird aufgerufen, dann Create, und dann kann ich den HTML-Code der Edit page ohne Fehler durchlaufen.

Die Seite ändert sich jedoch nicht! Es ist so, als würde ich überhaupt nicht weitergeleitet. Die Bearbeitungsseite wird nicht angezeigt und ich bleibe auf der Seite hängen, die das Raster mit allen Datensätzen anzeigt, die ich kopieren kann.

Kann jemand erklären, warum die Bearbeitungsseite nicht angezeigt wird? Gibt es etwas wirklich Offensichtliches, das ich nicht sehe?

+0

Haben Sie versucht mit Return RedirectToAction ("Index", Modell); (oder) return View ("ViewName"); – coder

+0

'RedirectToAction()' wird genau dasselbe tun, während 'View()' überhaupt nicht funktioniert, es ruft nicht einmal die 'Create'-Aktion auf – Msonic

Antwort

0

Das war ein dummer Fehler von meiner Seite.

Die Copy Aktion wurde über AJAX aufgerufen, aber ich habe vergessen anzugeben, was mit der html von der Aktion zurückgegeben werden soll.

Ich verwende jetzt window.location = "/DemandeDeMontage/Copy/" + id statt.