ASP.NET MVC 6 で新しいヘルパー タグを使用しています。
<form asp-area="DAS"
asp-controller="Report"
asp-action="Add"
asp-route-id="@Model.id"
asp-route-incBalance="@Model.incBalance"
asp-route-dateSet="@Model.dataStart.ToString("yyyy-MM-dd")"
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
method="post" role="form">
</form>
属性をルーティングしたい:
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
次の場合にのみ適用されました。
{
if (Model.incBalance == 0)
{
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
}
}
その結果、次のようなものを取得したいと考えています。
<form asp-area="DAS"
asp-controller="Report"
asp-action="Add"
asp-route-id="@Model.id"
asp-route-incBalance="@Model.incBalance"
asp-route-dateSet="@Model.dataStart.ToString("yyyy-MM-dd")"
{
if (Model.incBalance == 0)
{
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
}
}
method="post" role="form">
</form>
次のエラーが表示されます。
TagHelper 属性は整形式でなければなりません。
if (Model.incBalance == 0)
と
タグ ヘルパー 'form' では、要素の属性宣言領域に C# を含めることはできません。
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
Visual Studio 2015 Update 1 を使用しています
更新 1: 私もこのオプションを試しました:
@(Model.incBalance == 0 ? "asp-route-dateNext=" + Model.dataEnd.ToString("yyyy-MM-dd") : string.Empty)
しかし、エラーは残りました:
タグ ヘルパー 'form' では、要素の属性宣言領域に C# を含めることはできません。
@(Model.incBalance == 0 ? "asp-route-dateNext=" + Model.dataEnd.ToString("yyyy-MM-dd") : string.Empty)