簡體   English   中英

如何在 ASP.NET Core 中使用自定義驗證獲取索引處的屬性?

[英]How do I get a property at index using custom validation in ASP.NET Core?

我的 Razor 頁面中有輸入字段,這些字段是使用 foreach 循環加載的。 例如:

@foreach (var item in Model.DataList.Where(p => p.SubmittedBy == user.SubmittedBy))
{
    <input asp-for="AllTable.RefNumber" name="@item.Id" class="form-control" placeholder="Comments (optional)">
}

AllTable 是模型,RefNumber 是屬性

我還有一個自定義驗證類,它使用以下方法驗證文本框的值:

var refNumber = (string)validationContext.ObjectType.GetProperty(validationContext.MemberName).GetValue(validationContext.ObjectInstance, null);

就目前而言, refNumber 為空。 如何在保留唯一名稱屬性的同時驗證字段? 如果我刪除唯一名稱,它可以正常工作,但是當發生驗證錯誤時,它會針對所有相同的字段顯示,因為名稱與 asp-for 相同。

謝謝,

因為它是一個剃刀頁面,您將無法從 ObjectInstance 訪問模型,因為我認為它目前不受支持,但傳入的值將是您的列表對象。

    var myList = value as ApprovedList;
    var refNames = myList.Select(s => s.RefName);

此外,您從列表中添加輸入的方式不允許它綁定到模型。 需要是這樣的。

    <input asp-for="AllTable[i].RefNumber" class="form-control" placeholder="Comments (optional)">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM