2017-01-19 4 views
0

Meine Anwendung verfügt über eine individuelle Route, die wie folgt aussieht:ASP.NET MVC - Return-Ansicht mit benutzerdefinierten Routen

routes.MapRoute(
    name: "ProjectDocument", 
    url: "Project/{projectid}/{controller}/{action}/{id}", 
    defaults: new { controller = "Document", action = "Index", projectid = 0, id = UrlParameter.Optional } 
); 

Grundsätzlich gibt es mehrere Projekte und jede Projektunterlagen haben. Die Dokumente können die gleiche ID haben, daher brauche ich die Kombination von projectid und dokumentid, um das richtige Dokument zu erhalten.

Ich habe eine Bearbeitungsansicht erstellt ("/ Project/101/Document/Edit/78"). Wenn der Benutzer das Formular sendet, überprüfe ich zunächst den ModelState in meinem "Document" -Controller. Wenn das fehlschlägt, möchte ich das Modell/Modellstatus an die Ansicht zurückgeben, um die Fehler anzuzeigen. Mit normalen Routing würde, verwende ich nur

if (!ModelState.IsValid) 
{ 
return View(model); 
} 

aber mit dem benutzerdefinierten Route nicht funktioniert, weil es „Dokument/Edit/78“ zurückgibt (ohne individuelle Routing).

Kann mir jemand in die richtige Richtung zeigen, wie ich die vollständige benutzerdefinierte Route für diesen Fehler zurückgeben würde?

Dank

PRO

REQUEST AKTUALISIERT

In meinem Dokumenten-Controller

public async Task<ActionResult> Edit(int projectid, int id) 
{ 
... 

POST

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Edit(ProjectDocument projectdocument) 
{ 
... 
+0

Was sind die Signaturen Ihrer Controller-Methoden GET und POST für die 'Edit()' Methode? –

+0

[Httppost] [ValidateAntiForgeryToken] öffentlichen async Aufgabe Edit (ProjectDocument projectdocument) –

+0

Bitte bearbeiten Sie die Frage (nicht in den Kommentaren), und auch die Unterschrift für die –

Antwort

0

ich es herausgefunden GET. Ich hatte meine neue Route unter die Standardroute in meiner RouteConfig.cs-Datei. Danke an Stephen, dass er mich dazu gedrängt hat, etwas weiter in andere Teile meines Codes zu schauen.

Verwandte Themen