2009-08-13 14 views
18

ASP.NET MVC: Denetleyicimde string parametresi alınamıyor

public ActionResult Details(string name) 
{ 
    MyModelDataContext db = new MyModelDataContext(); 
    Product user = db.Products.Single(t => t.Name == name); 
    return View(user); 
} 

ben http://localhost:port/User/Details/SomeName doğrudan gezinirken, ben "somename" içeren "name" parametresi ile bu işlevi ulaşacağını bekliyoruz:

benim denetleyicisi denilen UserController aşağıdaki kodu var. Bu işleve giriyorum, ama "name" boş. Projenin varsayılan ayarlarını değiştirmedim.

Neyi yanlış yapıyorum?

Teşekkürler

+0

Mesaj lütfen rota tanımlarını:

routes.MapRoute( "Default", // Route name "{controller}/{action}/{name}", // URL w/ params new { controller="Home", action="Index",name="" } // Param defaults ); 

NerdDinner öğretici örneğe bakın. –

+0

@Yeni şehirde: Bunu değiştirmedim, varsayılan –

cevap

22

sonra hala parametre için varsayılan "id" adını kullanır varsayalım. Ya orada "name" olarak değiştirirseniz ya da action parametrenizi "id" olarak yeniden adlandırın.

+1

+1 Parametre adını "id" olarak değiştirdim ve işe yaradı, teşekkürler! –