をタグ私は属性をルーティングしたいASP.NET MVCで6ミキシングC#とHTMLヘルパーは、ASP.NET MVC 6(ASP.NETコア)
<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")"
がいる場合にのみ適用されました:
0:結果 {
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)
と
タグヘルパー '形式は' 要素の属性 宣言エリアでの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)
をしかし、エラーが残っ:
タグヘルパー 'フォーム'要素の属性 宣言領域にC#を使用してはいけません。かみそりで
@(Model.incBalance == 0 ? "asp-route-dateNext=" + Model.dataEnd.ToString("yyyy-MM-dd") : string.Empty)
HTMLヘルパータグとは何ですか?私はここにいくつかのコードが欠けていると感じています...? – Liam
@LiamこれはASP.NET Coreの機能です。 – poke
私はここであなたの解決策は、 'asp-route-dateNext'を完全に除外しないで、むしろnull可能なDateTime /空文字列かコントローラで処理できるものを渡すことができると考えています。フォームタグでそのプロパティに条件付きを持たせるのではなく、コントローラで処理するのは実際には意味がありません。これには何らかの理由がありますか? –