提问人:albert 提问时间:3/19/2023 更新时间:3/19/2023 访问量:79
有条件地生成 Asp-route 属性
Generate Asp-route attributes conditionally
问:
我正在使用 razor 标记帮助程序从视图中的模型生成锚链接。asp-route-xxx
<a asp-page="/Products"
asp-route-currentpage="@i"
asp-route-minprice="@Model.MinPrice"
asp-route-maxprice="@Model.MaxPrice">Products</a>
生成的 url 是 。
是否可以为默认值 (0) 创建查询部分?/products?currentpage=3&minprice=10&maxprice=100
例如,如果 min-price 为 0,则无需在查询字符串中生成部分。&minprice=0
我尝试过这样的事情,但剃须刀不满意,你不能在html属性中编写c#。
@if(FilterModel.MinPrice > 0 )
{
asp-route-minprice="@Model.MinPrice"
}
@if(FilterModel.MaxPrice > 0 )
{
asp-route-maxprice="@Model.MaxPrice"
}
答:
1赞
Dimitris Maragkos
3/19/2023
#1
你可以这样做:
<a asp-page="/Products"
asp-route-currentpage="@i"
asp-route-minprice="@(Model.MinPrice != default ? Model.MinPrice : null)"
asp-route-maxprice="@(Model.MaxPrice != default ? Model.MaxPrice : null)">Products</a>
艺术
@{
int? minPrice = Model.MinPrice != default ? Model.MinPrice : null;
int? maxPrice = Model.MaxPrice != default ? Model.MaxPrice : null;
}
<a asp-page="/Privacy"
asp-route-currentpage="@i"
asp-route-minprice="@minPrice"
asp-route-maxprice="@maxPrice">Products</a>
评论