从视图调用控制器方法 - 找不到页面

问题描述

我正在尝试从 View 调用控制器方法。我试图从操作链接调用它。

ActionLink 位于帐户视图中:

  @Html.ActionLink(item.ClientName,"GetDetails","DetailsController",new { id = item.Id 
  },null)

DetailsController 方法

   public async Task<IActionResult> GetDetails(int id)
    {
      return View("ClientDetails",clientAccount);
    }

生成的网址:https://localhost:44355/DetailsController/GetDetails/1

我收到一个错误

找不到这个本地主机页面 未找到该网址的网页:https://localhost:44388/DetailsController/GetDetails/1 HTTP 错误 404

我需要重定向到 clientDetails 视图并显示数据 我可以这样打电话吗?有没有更好的方法

文件夹结构

enter image description here

解决方法

找不到这个本地主机页面没有找到网页的网页 地址:https://localhost:44388/DetailsController/GetDetails/

对于这个问题,从文件夹结构来看,您的应用程序中似乎有一个 ClientDetails 控制器,而不是“Detail”控制器。

所以,当你创建超链接时,控制器名称应该是“ClientDetails”,而不是“ClientDetailsController”,代码如下:

@Html.ActionLink(item.ClientName,"GetDetails","ClientDetails",new { id = item.Id},null)

那么,我假设 GetDetails 方法在 ClientDetails 控制器中,ClientDetails.cshtml 页面在 Views/ClientAccount 文件夹中,如果是这种情况,我们应该使用以下代码来分配视图页面。

>
    public async Task<IActionResult> GetDetails(int id)
    { 
        var clientAccount = items.Where(c=>c.Id == id).FirstOrDefault();
        return View("~/Views/ClientAccount/ClientDetails.cshtml",clientAccount);
    } 

因为,如果使用return View("ClientDetails",clientAccount);,它会从Views文件夹中的文件夹(名称与控制器名称相同)中找到ClientDetails视图页面。