Asp.net mvc UrlParameter.Optional不在Razor中工作

Asp.net mvc UrlParameter.Optional不在Razor中工作,asp.net-mvc,razor,Asp.net Mvc,Razor,我在链接布局中使用以下代码: <a href="@Url.Action("NewProduct", "Administrator", new { id = UrlParameter.Optional })"></a> 这是我的新产品控制器: public ActionResult NewProduct(int id = -1) { NewProductModel m = new NewProductModel(); return View(m); } my Url

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

<a href="@Url.Action("NewProduct", "Administrator", new { id = UrlParameter.Optional })"></a>
这是我的新产品控制器:

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

my UrlParameter有什么问题。可选

当您使用
@Url.Action
helper时,您应该像这样将实际值传递给参数:

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

UrlParameter。可选的
应仅在您在代码中看到的RouteConfig中使用。

在NewProduct controller中:

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>


没有错误,我想重定向到这样的链接,但id值从何而来?它来自您传递到视图的logicFrom模型。它可以从您的ViewModel(
Model.Id
)或
ViewData[“Id”]
ViewBag.Id
动态
对象)中获取。您应该将其设置在控制器的某个位置,但当我在新产品页面中输入Model.Id时working@komeilshahmoradi因为你应该设置它。如果不进行设置,则为空=)
<a href="@Url.Action("NewProduct", "Administrator", new { id = Model.Id})"></a>