【发布时间】:2016-11-08 14:26:22
【问题描述】:
我的操作中有两个验证,如下所示:
if (viewModel.IssuePDFFile == null || viewModel.IssuePDFFile.ContentLength == 0)
{
ModelState.AddModelError("", "Please select a file to upload.");
if (selectedJournalId > 0)
{
return RedirectToAction("CreateNewIssue", new { journalId = selectedJournalId });
}
else
{
return RedirectToAction("CreateNewIssue",
new { journalId = selectedJournalId, journalName = viewModel.JournalName });
}
}
var fileInfo = new FileInfo(viewModel.IssuePDFFile.FileName);
if (!StaticData.AcceptedContentTypes.Contains(viewModel.IssuePDFFile.ContentType,
StringComparer.InvariantCultureIgnoreCase) ||
!fileInfo.Extension.Equals(".pdf", StringComparison.InvariantCultureIgnoreCase))
{
ModelState.AddModelError("IssuePDFFile", "You can only select a PDF file.");
if (selectedJournalId > 0)
{
return RedirectToAction("CreateNewIssue", new { journalId = selectedJournalId });
}
else
{
return RedirectToAction("CreateNewIssue", new { journalId = selectedJournalId,
journalName = viewModel.JournalName });
}
}
在我看来,我有这个:
@using (Html.BeginForm(...)
{
@Html.ValidationSummary(false, "", new { @class = "text-danger" })
@*File*@
<div class="form-group">
@Html.LabelFor(model => model.IssuePDFFile, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-12">
<input type="file" id="File" name="issuePDFFile" placeholder="Select a file to upload" />
@Html.ValidationMessageFor(model => model.IssuePDFFile, "", new { @class = "text-danger" })
</div>
</div>
...
}
请注意,@Html.ValidationSummary 扩展调用中的 excludePropertyErrors 参数设置为 false,希望我自己使用属性名称以外的键添加到模型状态错误集合中的错误也将显示在摘要中。
但是,上面代码 sn-p 中显示的两条错误消息没有出现在任何地方,既没有出现在验证摘要中,也没有出现在ValidationFor 我认为其中至少有一个的地方,即我添加的那个一个键,应该出现吗?
【问题讨论】:
标签: asp.net .net asp.net-mvc asp.net-mvc-5