Asp.net 如何正确链接不同的视图

Asp.net 如何正确链接不同的视图,asp.net,asp.net-mvc-4,Asp.net,Asp.net Mvc 4,我有一个带有导航栏的master.cshtml。我的第一个链接是另一个视图,ProjectManagement <li><a href="~/Views/ProjectManagement.cshtml">Project Management</a></li> 唯一的问题是,它现在将页面放入我的导航栏!我只想让它链接到页面,这次我能做什么?您不直接链接到视图,而是链接到操作。动作作为控制器上的方法实现;这些方法使用路由系统定位

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

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

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

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

控制器示例:

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();
    }
}
现在,您可以右键单击操作方法名称(“项目管理”)并选择“添加视图”。这将帮助您创建新视图,并将其放置在视图引擎可以自动找到的位置

视图通常放在“Views/[ControllerName]/”文件夹中,例如“Views/Services/ProjectManagement.cshtml”

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

  • @Html.ActionLink(“项目管理”、“项目管理”、“服务”)

  • 另请参见:

    感谢您的回答,在创建了新的服务控制器并从此处创建了视图之后,我继续添加了您发布的操作方法,但我在此处收到一个错误。路径“/”的控制器未找到或未实现IController。描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。异常详细信息:System.Web.HttpException:未找到路径“/”的控制器或未实现IController。源错误:第29行:
  • @Html.Action(“项目管理”、“项目管理”、“服务”)
  • Hmm…我假设您在添加控制器后重新编译了项目?这也可能由路由表的更改或向MVC站点添加多个区域引起。如果您没有发现明显的问题,我建议您创建第二个空白项目来进行试验。
    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();
        }
    }
    
    <li>@Html.ActionLink( "Project Management", "ProjectManagement", "Services" )</li>