UrlParameter.Optional在Razor中不起作用

时间:2016-03-31 06:43:27

标签: asp.net-mvc razor

我在链接的布局中使用下面的代码:

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

但它不起作用,这是我的路线Config

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

有什么问题

2 个答案:

答案 0 :(得分:1)

当您使用@Url.Action助手时,您应该将实际值传递给参数,如下所示:

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

UrlParameter.Optional只能在您的代码中看到的RouteConfig中使用。

答案 1 :(得分:0)

NewProduct控制器中的

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>