【发布时间】:2016-07-18 03:01:36
【问题描述】:
我在 ASP.NET MVC 6 中使用新的 Helper 标签。
<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)
和
标签助手“表单”的元素属性中不得包含 C# 申报区。
asp-route-dateNext="@Model.dataEnd.ToString("yyyy-MM-dd")"
我正在使用 Visual Studio 2015 更新 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)
【问题讨论】:
-
我认为您的解决方案是不完全排除“asp-route-dateNext”,而是能够传递可为空的日期时间/空字符串或可以在控制器中处理的内容。在表单标签中对该属性设置条件,而是在控制器上处理,这实际上没有任何意义。有没有具体的原因?
标签: c# asp.net-core asp.net-core-mvc asp.net-core-1.0 tag-helpers