Ответ 1
Если вы не изменили определения маршрута в Global.asax.cs, я полагаю, что он по-прежнему использует имя "id" по умолчанию для этого параметра. Либо измените его там, чтобы "назвать", либо переименуйте свой параметр действия в "id".
У меня в моем контроллере следующий код 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. Я не изменил никаких настроек по умолчанию для проекта.
Что я делаю неправильно?
Спасибо
Если вы не изменили определения маршрута в Global.asax.cs, я полагаю, что он по-прежнему использует имя "id" по умолчанию для этого параметра. Либо измените его там, чтобы "назвать", либо переименуйте свой параметр действия в "id".
Вы определили маршрут в своем 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