如何让我的 api 数据显示在我的详细信息列表中?
Posted
技术标签:
【中文标题】如何让我的 api 数据显示在我的详细信息列表中?【英文标题】:How do I get my api-data to show up on my details list? 【发布时间】:2021-12-27 19:24:44 【问题描述】:我可以通过创建这样的 ProductsController 来通过视图页面在我的 API 中列出我的所有产品:
public async Task<ActionResult> Index()
var http = new HttpClient();
var products = await http.GetFromJsonAsync<List<Product>>("I won't write out my link so everyone can see it :P");
return View(products);
之后我为这样的产品做了一个查看页面。
@foreach (var item in Model)
<div class="col">
<div class="card h-100">
<div class="card-body">
<p><small>@html.DisplayFor(modelItem => item.SubCatergoryId)</small></p>
<img src=" @Html.DisplayFor(modelItem => item.ImageUrl)" class="card-img-top" >
<h5 class="card-title">@Html.DisplayFor(modelItem => item.Name)</h5>
<p class="card-text">@Html.DisplayFor(modelItem => item.Description)</p>
<div class="d-flex justify-content-between align-items-center card-footer">
<p class="text-danger price pt-3">@Html.DisplayFor(modelItem => item.Price):-</p>
<a href="/home/details/@item.Id" class="btn btn-outline-secondary">Details<i class="fas fa-shopping-cart me-2"></i></a>
</div>
</div>
<div class="card-footer">
<small class="text-muted"><i class="fas fa-box text-success my-2"> Lagerstatus</i></small>
</div>
</div>
</div>
效果很好。但现在我想按下详细信息按钮,这会将我带到另一个视图(详细信息页面)。这是详情页的代码:
<div class="container mt-5">
<div class="row row-cols-1 row-cols-md-4 g-4">
<div class="col-lg">
<div class="card h-100">
<div class="card-body">
<img src="@Html.DisplayFor(model => model.ImageUrl)" class="card-img-top" >
<h5 class="card-title">@Html.DisplayNameFor(model => model.Name)</h5>
<p class="card-text">
<b></b> <br>@Html.DisplayNameFor(model => model.Description)</p>
<div class="d-flex justify-content-between align-items-center">
<p class="text-danger price pt-3">@Html.DisplayNameFor(model => model.Price):-</p>
<button class="btn btn-outline-secondary">
Beställ
<i class="fas fa-shopping-cart me-2"></i>
</button>
</div>
</div>
<div class="card-footer">
<small class="text-muted"><i class="fas fa-box text-success my-2"> Lagerstatus</i></small>
</div>
</div>
</div>
</div>
</div>
这是我得到的:Details Page
这是我第一次使用 Asp.net 并制作自己的 API。
【问题讨论】:
【参考方案1】:@Html.DisplayNameFor
显示属性的名称或在属性的显示属性中定义的字符串。
@Html.DisplayFor
显示字段的值。
将您的代码更改为:
<div class="container mt-5">
<div class="row row-cols-1 row-cols-md-4 g-4">
<div class="col-lg">
<div class="card h-100">
<div class="card-body">
<img src="@Html.DisplayFor(model => model.ImageUrl)" class="card-img-top" >
<h5 class="card-title">@Html.DisplayFor(model => model.Name)</h5>
<p class="card-text">
<b></b> <br>@Html.DisplayFor(model => model.Description)
</p>
<div class="d-flex justify-content-between align-items-center">
<p class="text-danger price pt-3">@Html.DisplayFor(model => model.Price):-</p>
<button class="btn btn-outline-secondary">
Beställ
<i class="fas fa-shopping-cart me-2"></i>
</button>
</div>
</div>
<div class="card-footer">
<small class="text-muted"><i class="fas fa-box text-success my-2"> Lagerstatus</i></small>
</div>
</div>
</div>
</div>
</div>
注意:
确保model.ImageUrl
的值应等于/location/filename.extension
。请务必在开头添加单斜杠并指定文件名。
【讨论】:
非常感谢:) 嗨@PouryaYarahmadi,如果我的回答可以帮助您解决问题,您能接受吗?参考:How to accept as answer。谢谢。以上是关于如何让我的 api 数据显示在我的详细信息列表中?的主要内容,如果未能解决你的问题,请参考以下文章
Android如何从同一个数组中仅显示列表视图中的某些项目?
如何让我的 Rails 5 日志向我显示与 Rails 4 一样的每个操作的详细信息?