You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WebAssembly中Razor页面CSS不生效问题求助

Blazor项目中Pages产品详情页CSS无法加载问题

我正在跟随教程开发Blazor项目,Shared文件夹下的Razor页面CSS样式可正常生效,但Pages文件夹中的产品详情页CSS无法加载,图片尺寸、颜色等样式均无变化。注意到Pages文件夹中的文件带有绿色+标记,而Shared文件夹中的文件带有红色V标记。

Shared页面代码

@inject IProductService ProductService
@if(ProductService.Products == null || ProductService.Products.Count == 0)
{
    <span>Loading products...</span>
}
else
{
    <ul class="list-unstyled">
        @foreach (var product in ProductService.Products)
        {
            <li class="media my-3">
                <div class="media-image-wrapper mr-2">
                    <a href="/product/@product.Id">
                        <img class="media-img" src="@product.ImageUrl" alt="@product.Title">
                    </a>
                </div>
                <div class="media-body">
                    <a href="#">
                        <h4 class="mb-0">@product.Title</h4>
                    </a>
                    <p>@product.Description</p>
                    <h5 class="price">$@product.Price</h5>
                </div>
            </li>
        }
    </ul>
}
@code {
    protected override async Task OnInitializedAsync()
    {
        await ProductService.GetProducts();
    }
}

Shared页面对应的CSS文件

.media-img{
    max-height: 200px;
    max-width: 200px;
    border-radius: 6px;
    margin-bottom: 10px;
    transition: transform .2s;
}
.media-img:hover{
    transform: scale(1.1);
}

.media{
    display:flex;
    align-items: flex-start;
}
.media-body{
    flex: 1;
    margin-left: 20px;
}

media-img-wrapper{
    width:  200px;
    text-align: center;
}


@media(max-width: 1023.98px)
{
    .media{
        flex-direction: column;
    }
    media-img-wrapper{
        width: 100%;
        height: auto;
    }
}

Pages文件夹中的产品详情页代码

@page "/product/{id:int}"
@inject IProductService ProductService

@if(product == null)
{
    <span>Message</span>
}
else
{
    <div class="media">
        <div class="media-img-wrapper mr-2">
            <img class="media-img" src="@product.ImageUrl" alt="@product.Title">
        </div>
        <div class="media-body">
            <h2 class="mb-0">@product.Title</h2>
            <p>@product.Description</p>
            <h4 class="price">
                $@product.Price
            </h4>
        </div>
    </div>
}


@code {
    private Product? product = null;
    private string Message = string.Empty;

    [Parameter]
    public int Id { get; set; }

    protected override async Task OnParametersSetAsync()
    {
        Message = "Loading Product...";

        var result = await ProductService.GetProductAsync(Id);
        if(!result.Success)
        {
            Message = result.Message;
        }
        else
        {
            product = result.Data;
        }
    }
}

已尝试但无效的解决方案

  • 为产品详情页添加独立CSS文件
  • 修改wwwroot/css/app.css内容如下:
.media-img{
max-height: 500px;
max-width: 500px;
border-radius: 6px;
margin: 0  10px 10px 10px;
}

.media-img-wrapper {
    max-width: 500px;
    max-height: 500px;
    text-align: center;
}

@media(max-width:  1023.98px)
{
    .media-img {
        max-width: 300px;
    }
    .media-img-wrapper{
        width:100%;
        height: auto;
    }
}

内容的提问来源于stack exchange,提问作者Modestas Vacerskas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:30:51