2016-03-31 5 views
1

で働いていない:UrlParameter.Optional私はリンクのレイアウトのコードの下に使用していますレイザー

<a href="@Url.Action("NewProduct", "Administrator", new { id = UrlParameter.Optional })"></a> 

しかし、それは働いていない、ここに私のルートコンフィグ

public static void RegisterRoutes(RouteCollection routes) 
{ 


    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home" , action = "Index", id = UrlParameter.Optional } 
    ); 


} 

は、これは私のNewProductコントローラーです。

public ActionResult NewProduct(int id = -1) 
{ 
NewProductModel m = new NewProductModel(); 
    return View(m); 
} 

私UrlParameter.optional

での問題は何ですか
+0

ためのエラーなし、私はこのHTTPのようなリンクにリダイレクトします:// localhostを:3891 /管理者/ NewProduct/1 –

答えて

0

public ActionResult NewProduct(int id = -1) 
{ 
    NewProductModel m = new NewProductModel(); 
    m.Id = id; 
    return View(m); 
} 

とリンク

<a href="@Url.Action("NewProduct", "Administrator", new { id = Model.Id})"></a> 
1

あなたが@Url.Actionヘルパーを使用して、あなたは、このようにパラメータする実際の値を渡す必要があります:あなたのコードに見るように

@Url.Action("NewProduct", "Administrator", new { id = 1 }) 

UrlParameter.OptionalのみRouteConfigで使用する必要があります。 NewProductコントローラで

+0

しかし、 id値はどこから来ますか? –

+0

あなたのロジックから来る –

+0

Viewに渡すモデルから。 ViewModel( 'Model.Id')や' ViewData ["Id"] 'や' ViewBag.Id'( 'dynamic'オブジェクト)から取得できます。コントローラ –

関連する問題