2014-11-14 26 views
9

Tôi đang cố gắng sử dụng tham số id với một phương thức async iactionresult, nhưng nó sẽ đến như là rỗng.AsyncController bị thiếu trong MVC 6

Nếu tôi thừa hưởng từ điều khiển và sử dụng -

public IActionResult Index(string id) 

không có vấn đề. Nhưng khi tôi sử dụng ->

public async Task<IActionResult> Index(string id) 

(đó là những gì tôi cần) tham số id luôn là rỗng. Tôi đang cố gắng kế thừa từ AsyncController để thực hiện việc này, tuy nhiên tôi đang gặp sự cố khi định vị nó bằng cách sử dụng:

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

Có ai biết công việc này không? Cảm ơn!

+0

Các ràng buộc của 'tham số id' không nên phụ thuộc vào việc bạn được trả lại một nhiệm vụ hay không ... bạn có thể chia sẻ cách các tuyến đường của bạn trông như thế nào và url của yêu cầu của bạn trông như thế nào? –

Trả lời

22

Không có lớp cơ sở AsyncController trong MVC 6 trong ASP.NET vNext. Tất cả các bộ điều khiển trong MVC 6 (và MVC 4 và 5, cho rằng vấn đề) là không đồng bộ.

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); 
     } 
    } 
} 

Và chuyển đến:

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

Và một cách chính xác có kết quả này:

I found ID: 123 
+1

Cảm ơn bạn đã thông tin. Điều này làm việc. Tôi đã có một vấn đề khác đã gây ra vấn đề. –

+0

Bất kỳ trạng thái tài liệu nào tất cả bộ điều khiển trong mvc 4,5,6 đều không đồng bộ? – KevinBui