Domanda

Ho appena iniziato a usare Attributo con la mia applicazione ASP.NET MVC3. Ho iniziato con -No- controller. (Nuova applicazione MVC3 vuota)

Ho quindi fatto un'area. (chiamato: Documentation)

Ho quindi aggiunto un controller (chiamato: DocumentationController)

Ho quindi fatto questo ..

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index")]
    public ActionResult Index()
    {
        return View();
    }
}

E il seguente percorso, funziona: /documentation/index

Ma come posso fare questi due percorsi, funzionare?

1 - / <- (percorso predefinito / nessun percorso specifico specificato) 2- /documentation <- No 'INDICE' Sezione subroute aggiunta.

Questo può essere fatto con Attributo?

AGGIORNARE:

So come farlo con la struttura ASP.NET MVC3 predefinita, ecc. Quello che sto cercando di fare è capirlo invece tramite attributo.

È stato utile?

Soluzione

Presumo che tu voglia che "/" e "/documentation" mappino su documentationcontroller.index, sì? In tal caso, fallo:

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index", Order = 1)] // will handle "/documentation/index"
    [GET("")] // will handle "/documentation"
    [GET("", IsAbsoluteUrl = true)] // will handle "/"
    public ActionResult Index()
    {
        return View();
    }
}

Un po 'di spiegazione:

  • Get ("indice") ha ordine = 1 per contrassegnarlo come percorso principale per l'azione. A causa del funzionamento della riflessione, non c'è modo di determinare l'ordine degli attributi su un'azione senza utilizzare la proprietà dell'ordine. Vedere qui
  • Puoi avere più percorsi GET mappati su una singola azione. Vedere qui
  • La proprietà IsabsoluteUrl consente di sovrascrivere i prefissi URL aggiunti dagli attributi RouteAREA e RoutePrefix. In modo che quel percorso finale corrisponda alle richieste di root. Vedere qui

Spero che sia di aiuto. Se la mia ipotesi iniziale di ciò che stai cercando di fare è errata, si prega di commentare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top