【问题标题】:Validate object that is sent from a collection in a text file验证从文本文件中的集合发送的对象
【发布时间】:2019-03-28 19:55:41
【问题描述】:

我正在尝试验证文件中的日期字段,以确保它使用的是 MM/dd/yyyy 字段。我希望错误消息出现在实际发生错误的文件中的发票旁边。为了将我的发票编号和日期放在表格中,我必须将它们作为一个集合发送,以便我可以循环列表并显示它们。由于数据是作为列表发送的,因此我必须在我的视图中指定IList<WebApplication2.Models.UploadFileValidation>。这意味着当我将@Html.ValidationMessageFor(m => m.InvoiceD) 放在我的表中时,它显然无法找到 InvoiceD,因为它不存在。

任何帮助将不胜感激,因为这对我来说是在探索新领域。以下是我的完整代码。

查看

@model IList<WebApplication2.Models.UploadFileValidation>
        @foreach (var validateOutput in Model)
        {
            <tr>
                <td>@validateOutput.InvoiceNumber </td>
                <td>@validateOutput.InvoiceD </td>
                <td>@Html.ValidationMessageFor(m => m.InvoiceD)</td>
            </tr>
        }

型号

public class UploadFileValidation
{
    public string InvoiceNumber { get; set; }
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime InvoiceD { get; set; }
}

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    调整@foreach (var validateOutput in Model) 会这样做:

    @for (var i = 0; i < Model.Count(); i++)
    {
        <tr>
            <td>@Model[i].InvoiceNumber </td>
            <td>@Model[i].InvoiceD </td>
            <td>@Html.ValidationMessageFor(m => m[i].InvoiceD)</td>
         </tr>
    }
    

    @foreach (var validateOutput in Model)
    {
        <tr>
           <td>@validateOutput.InvoiceNumber </td>
           <td>@validateOutput.InvoiceD </td>
           <td>@Html.ValidationMessageFor(m => validateOutput.InvoiceD)</td>
        </tr>
    }
    

    【讨论】:

    • 谢谢。经过一番思考,我有了 validateOutput.InvoiceD。另一种方式也很高兴知道!
    猜你喜欢
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多