我有一个名为customer的区域。它包含一个名为customer的控制器,具有以下操作
public ActionResult BrowseByCategory(int id=0)
{
//some code here............
return View();
}
我需要在根目录上的_layout.cshtml视图上创建上述操作的链接。
我写了以下标记。但它不起作用
@Html.ActionLink(c.CategoryName, "BrowseByCategory", "Customer", new { area = "customer" },new { id = c.CategoryCode })
请建议更改。
答案 0 :(得分:0)
ActionLink
@Html.ActionLink(c.CategoryName, "BrowseByCategory", new { area = "customer", controller = "Customer", id = c.CategoryCode }, new { @* There should be htmlParameters *@ })
方法可以在您的情况下使用,如下所示:
curl -X GET 127.0.0.1:8080/api/sum/?a=2&b=3
答案 1 :(得分:0)
您无法在动作中引用某个动作中的模型_Layout.cshtml
,或者至少您不应该。从技术上讲,可以为_Layout.cshtml
定义模型,但是使用此布局的每个...单个..视图只能使用相同的模型。如果您传递了不同的类类型,则会从布局中获得运行时错误。
在您的特定情况下,布局中所需的链接似乎取决于当前正在查看的类别。那么,处理此问题的最佳方法是使用部分。
在布局中,您可以定义以下部分:
@RenderSection("CustomLink", required: false)
只需将其放在您想要显示链接的任何位置即可。如果某些其他视图不需要此自定义链接,则不需要它意味着您不会遇到运行时错误。
然后,在您看来:
@section CustomLink
{
@Html.ActionLink(c.CategoryName, "BrowseByCategory", "Customer", new { area = "customer" },new { id = c.CategoryCode })
}
现在,这将显示在您的布局中您想要的位置,但您可以在视图级别定义它。