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 AKTUALISIERTIn meinem Dokumenten-Controller
public async Task<ActionResult> Edit(int projectid, int id)
{
...
POST
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(ProjectDocument projectdocument)
{
...
Was sind die Signaturen Ihrer Controller-Methoden GET und POST für die 'Edit()' Methode? –
[Httppost] [ValidateAntiForgeryToken] öffentlichen async Aufgabe Edit (ProjectDocument projectdocument) –
Bitte bearbeiten Sie die Frage (nicht in den Kommentaren), und auch die Unterschrift für die –