MVCカミソリを初めて使ったので、私がしたいことを達成するための効率的な方法を見つけることができませんでした: 私の目的は、タイトルとそのリンクの他のタイトルは、リンクがある場合にのみリンクとして表示する必要があります。私はタイトルがそれに対応するリンクフィールドにもかかわらず、リンクとして表示され得る上記のコードではMVCカミソリのタイトルとして条件付きでタイトルを表示する
@model PaginatedList<MyProject.Models.Todo>
@foreach (var item in Model) {
<tr>
<td>
@{
int? length = @Html.DisplayFor(modelItem => item.Link).ToString()?.Length;
}
@if (length is null)
{
@Html.DisplayFor(modelItem => item.Title)
}
else
{
<a href="@Html.DisplayFor(modelItem => item.Link)" target=_blank>
@Html.DisplayFor(modelItem => item.Title)
</a>
}
</td>
<td>
<a [email protected](modelItem => item.Link) target="_blank">@Html.DisplayFor(modelItem => item.Link)</a>
</td>
</tr>
空です:
は、私はこれを試してみました。それを修正するには?
@lengthは常に同じ値になり、nullではありません。 –
'intを置き換えると**正確に**何が起こりますか? length = @ Html.DisplayFor(modelItem => item.Link).ToString()?Length; 'with'int? length = item?.Link?.Length; '? – mjwills
これで、@lengthの値が変更され、必要なタイトルにリンク形式が適用されません。 –