2014-11-14 13 views
9

Sto provando a utilizzare il parametro id con un metodo iactionresult asincrono, ma sta arrivando come null.AsyncController mancante in MVC 6

Se ereditare da controller e l'uso -

public IActionResult Index(string id) 

non c'è nessun problema. Ma quando uso ->

public async Task<IActionResult> Index(string id) 

(che è quello che mi serve) il parametro id è sempre nullo. Sto cercando di ereditare dalla AsyncController per fare questo, però sto avendo dei problemi nel localizzare utilizzando:

 "Microsoft.AspNet.Mvc": "6.0.0-beta1" 

Qualcuno sa qualsiasi lavoro in giro per questo? Grazie!

+0

Il legame del parametro 'id' non dovrebbe dipendere dal fatto che il vostro stanno tornando un compito o no ... puoi condividere come appaiono i tuoi percorsi e anche come appare l'url di richiesta? –

risposta

22

Non esiste una classe base AsyncController in MVC 6 in ASP.NET vNext. Tutti i controller in MVC 6 (e MVC 4 e 5, per quella materia) sono asincroni.

using System; 
using System.Threading.Tasks; 
using Microsoft.AspNet.Mvc; 

namespace WebApplication49.Controllers 
{ 
    public class TestController : Controller 
    { 
     public async Task<IActionResult> Index(string id) 
     { 
      await Task.Delay(1000); 
      return Content("I found ID: " + id); 
     } 
    } 
} 

E navigato a:

http://localhost:49479/test/index/123 

e corretto ha ottenuto questo risultato:

I found ID: 123 
+1

Grazie per le informazioni. Questo ha funzionato. Ho avuto un altro problema che stava causando il problema. –

+0

Qualsiasi documento dichiari che tutti i controller in mvc 4,5,6 sono asincroni? – KevinBui