C# ActionResult未正确获取参数

C# ActionResult未正确获取参数,c#,.net,model-view-controller,C#,.net,Model View Controller,在“我的主页/索引”视图中,我有一个列表视图,其中显示了带有照片和所有上传详细信息的卡片,每个卡片都包含一个点击操作链接: @model IEnumerable<FunPetPics.Models.PetPhotoModel> @{ ViewData["Title"] = "Home Page"; } @if (Model == null || !Model.Any()) { <p>uploads will be

在“我的主页/索引”视图中,我有一个列表视图,其中显示了带有照片和所有上传详细信息的卡片,每个卡片都包含一个点击操作链接:

@model IEnumerable<FunPetPics.Models.PetPhotoModel>

@{
    ViewData["Title"] = "Home Page";
}

@if (Model == null || !Model.Any())
{
    <p>uploads will be displayed here</p>

}
else
{

    @using (Html.BeginForm("Index", "Home", FormMethod.Get))
    {
        @await Html.PartialAsync("_PetPhotoModelFilter")
    }

    <div class="card-columns">

        @foreach (var upload in Model)
        {
         

   <a href='@Url.Action( "Rate", "Details", upload.Id )'>

                <div class="card">
                    <img class="card-img-top" src="@("~/UploadedPhotos/"+  upload.ImageName)" asp-append-version="true">
                    <div class="card-body">
                        <h4 class="card-title">@upload.Title</h4>
                        <h6 class="card-subtitle mb-2 text-muted">@upload.PetName</h6>
                        <p class="card-text">@upload.DateUploaded</p>
                        <p class="card-text">@upload.Description</p>
                        <p class="card-subtitle">Ratings:</p>
                        <p class="card-text">
                            Cute:@upload.AverageCutenessRating/5<br />
                            Funny:@upload.AverageFunnynessRating/5<br />
                            Awsome:@upload.AverageAwsomnessRating/5<br />
                        </p>
                    </div>
                </div>
            </a>
        }
    </div>
目前,“详细信息/费率”视图仅用于显示照片,直到我可以使其余部分正常工作:

@using Microsoft.AspNetCore.Http;

@model PetPhotoModel


@{
    <img src="@("~/UploadedPhotos/"+  ((PetPhotoModel)Model).ImageName)" asp-append-version="true">
}

@使用Microsoft.AspNetCore.Http;
@模型摄影模型
@{
}
当主页/索引页上显示的链接显示在浏览器上时,我会进入
https://localhost:44316/Rate/Details
(为什么没有id?)并且控制器中的
id
为0(不是正确的)

我还尝试将此属性添加到控制器的
Rate()
方法:
[Route(“Details/Rate/{id}”)]
,但没有在控制器中命中断点,并且它会显示具有相同URL的未找到页面。

您没有正确使用。将
Route
属性保留在中,并将视图更改为使用此属性,注意它如何使用匿名对象来允许MVC将
id
值链接到匹配的参数:

@Url.Action( "Rate", "Details", new { id = upload.Id })
@Url.Action( "Rate", "Details", new { id = upload.Id })