2009-08-13 13 views
18

で文字列パラメータを取得できません私は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を直接参照するとき、私はこの機能に到達することを期待「name」パラメータに「SomeName」が含まれています。私はこの関数に行きますが、 "name"はnullです。私はプロジェクトのデフォルト設定を変更しませんでした。

私は間違っていますか?

おかげ

+0

投稿してください。 –

+0

@ New in town:私はそれを変更しませんでした。デフォルトです –

答えて

22

あなたがGlobal.asax.csであなたのルート定義を変更していない場合、私はそれがまだパラメータのデフォルト「ID」の名前を使用しているとします。そこに名前を変更するか、アクションパラメータの名前を "id"に変更します。

+1

+1パラメータ名を "id"に変更しました。 –

4

'name'パラメータを含むglobal.asaxでルートを定義しましたか?

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

NerdDinnerチュートリアルの例を参照してください:Global.asaxのからあなたのルートの定義はhttp://nerddinnerbook.s3.amazonaws.com/Part4.htm

関連する問題