首页 > 解决方案 > 不显示布局页面,在除索引之外的其他视图中工作。C# ASP.NET 核心

问题描述

嗨,stackoverflowers。

长话短说,我目前正在 ASP.net Core MVC 中构建用户界面。我创建了一个返回视图的动作控制器。如下所示。

public class VehicleHomeController : Controller
{
    private readonly IVehicleHomeService _vehicleHomeService;

    private readonly IMapper _mapper;

    public VehicleHomeController(IVehicleHomeService vehicleHomeService, IMapper mapper)
    {
        this._mapper = mapper;
        this._vehicleHomeService = vehicleHomeService;
    }
    public IActionResult Index()
    {
        return View();
    }

    public async  Task<IActionResult> Edit(int id)
    {
        var vehicleHome = await _vehicleHomeService.GetVehicleHomeById(id);

        var vehicleHomeResource = _mapper.Map<VehicleHome, VehicleHomeViewModel>(vehicleHome);

        return View(vehicleHomeResource);
    }
}

返回索引视图就像一个流程。它正确使用布局页面。但是,在创建编辑视图时,布局无法正确显示。两个动作控制器在提供布局的代码中看起来是一样的。

@{
     Layout = "_Layout";
}

我一直在寻找答案。一种常见的解决方案是定义 layout = "/Views/Shared/_Layout.cshtml";。但是,这不适用于我的应用程序。有没有人有任何类似的问题或任何提示?

标签: c#asp.net-corerazor

解决方案


问题解决了。

然后找到布局 CSS 和徽标的路径出错了。问题是代码试图在 PathForTheApplicationLocalHost/Edit/images/logo.svg 中获取自定义 CSS 和徽标。和 PathForTheApplicationLocalHost/Edit/css/custom.css。

而正确的路径应该是 PathForTheApplicationLocalHost/css/custom.css。我通过在 _Layout.cshtml 中定义以下内容解决了这个问题

<link rel="stylesheet" type="text/css" href="~/css/custom.css">

这使得在编辑视图中调用布局的路径正确(PathForTheApplicationLocalHost/css/custom.css)。


推荐阅读