2009-08-13 6 views
18
UserController 내 컨트롤러에 UserController이라는 다음 코드가 있습니다.

ASP.NET MVC : 컨트롤러에서 문자열 매개 변수를 가져올 수 없습니다.

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을 직접 탐색하면 "SomeName"이 포함 된 "name"매개 변수가있는이 함수에 도달합니다. 나는이 함수를 사용하지만, "name"은 null이다. 프로젝트의 기본 설정을 변경하지 않았습니다.

내가 뭘 잘못하고 있니?

고맙습니다

+0

게시하시기 바랍니다 경로 정의 :

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

은 NerdDinner의 튜토리얼의 예를 참조하십시오. –

+0

@ New in town : 나는 그것을 변경하지 않았다, 기본값이다 –

답변

22

는 나는 여전히 매개 변수의 기본 "ID"이름을 사용한다고 가정. 이름을 변경하거나 작업 매개 변수의 이름을 "id"로 변경하십시오.

+1

+1 "id"로 매개 변수 이름을 변경했다. –

관련 문제