Подтвердить что ты не робот

ASP.NET MVC: невозможно получить строковый параметр в моем контроллере

У меня в моем контроллере следующий код UserController:

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

Я ожидаю, что, когда я перейду непосредственно к http://localhost:port/User/Details/SomeName, я дойду до этой функции с помощью параметра "name", содержащего "SomeName". Я добираюсь до этой функции, но "name" имеет значение null. Я не изменил никаких настроек по умолчанию для проекта.

Что я делаю неправильно?

Спасибо

4b9b3361

Ответ 1

Если вы не изменили определения маршрута в Global.asax.cs, я полагаю, что он по-прежнему использует имя "id" по умолчанию для этого параметра. Либо измените его там, чтобы "назвать", либо переименуйте свой параметр действия в "id".

Ответ 2

Вы определили маршрут в своем global.asax, который включает параметр 'name'?

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

См. пример в учебнике NerdDinner: http://nerddinnerbook.s3.amazonaws.com/Part4.htm