问题描述
我正在尝试从 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 视图并显示数据 我可以这样打电话吗?有没有更好的方法?
文件夹结构
解决方法
找不到这个本地主机页面没有找到网页的网页 地址: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视图页面。