如何正确链接不同的视图

时间:2013-04-21 20:19:01

标签: asp.net asp.net-mvc-4

我有一个带导航栏的master.cshtml。我的第一个链接是另一个视图,ProjectManagement

<li><a href="~/Views/ProjectManagement.cshtml">Project Management</a></li>

master.cshtml位于/Views/Shared/_master.cshtml

ProjectManagement位于/Views/ProjectManagement.cshtml

每当我点击链接时我都会:

  

描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

     

请求的网址:/Views/ProjectManagement.cshtml

我使用了错误的路径,还是应该尝试以不同方式访问该页面?

编辑:我能够通过使用它来接近:

<a href="@Html.Action( "ProjectMgmt", "Service", "Project Management" )">

唯一的问题是它现在将页面放入导航栏!我只希望它链接到页面,这次我可以做什么?

1 个答案:

答案 0 :(得分:2)

您不直接链接到视图,而是链接到操作。动作作为控制器上的方法实现;这些方法使用路由系统定位。

示例控制器:

public class ServicesController : Controller 
{
    [HttpGet]
    public ActionResult ProjectManagement()
    {
         // automatically locates the correct view; you can also explicitly
         // pass the path to the view
         return View();
    }
}

您现在可以右键单击操作方法名称(“ProjectManagement”)并选择“添加视图”。这将帮助您创建一个新视图,并将其放在视图引擎可以自动找到的位置。

视图通常放在“Views / [ControllerName] /”文件夹中,例如“查看/服务/ ProjectManagement.cshtml”。

要在导航栏中链接到此操作方法,您可以使用辅助方法ActionLink()

<li>@Html.ActionLink( "Project Management", "ProjectManagement", "Services" )</li>

另请参阅:Controllers and Routing