基本上我有一些隐藏的字段,当返回的数据为空时会导致错误。我想要做的是检查模型是否为空,如果它是空的,我想跳过整个Begin Form标签并移到我的桌子上。但是,当我尝试这个时,它仍然会停止并通过Begin Form标签。反正有改变吗?
您可以在下面看到我的设置:
@if (!Model.ReportData.Any())
{
using (Html.BeginForm("ReportSelection", "Reports", FormMethod.Post))
{
@Html.DropDownListFor(r => r.StatusCategoryID, new SelectList(Model.StatusCategories, "StatusCategoryID", "StatusCategoryDesc"), "Select Status", new { @class = "GRDropDown", @id = "ReportDD" })
<input type="hidden" name="StatusReportID" value="1" />
<input type="hidden" name="ClientID" value="@Model.ReportData.Select(r => r.ClientID).FirstOrDefault()" />
if (Model.ReportData.Select(r => r.SupplierID).Any())
{
<input type="hidden" name="SupplierID" value="@Model.ReportData.Select(r => r.SupplierID).FirstOrDefault()" />
}
else if (Model.ReportData.Select(r => r.ReviewPeriodID).Any())
{
<input type="hidden" name="ReviewPeriodID" value="@Model.ReportData.Select(r => r.ReviewPeriodID).FirstOrDefault()" />
}
<button type="submit" value="Submit" class="btn btn-default">Submit</button>
}
}
如果模型为空,如何阻止它执行Begin表单标记?我原以为我的IF会阻止它,但事实并非如此。
答案 0 :(得分:2)
你的情况是倒退的。你说&#34;如果它没有任何内容,请显示此表格&#34;:
@if (!Model.ReportData.Any()) {
你希望它是&#34;如果它有内容,请显示此表格&#34;:
@if (Model.ReportData.Any()) {