gpt4 book ai didi

asp.net-mvc - 在 MVC 3 中将 EditorFor 与 IEnumerable 一起使用

转载 作者:行者123 更新时间:2023-12-04 11:10:33 25 4
gpt4 key购买 nike

我有一个包含字符串的 IEnumerable,使用数据注释进行验证:

[Required(ErrorMessage = "This is required.")]
[Remote("IsValid", "ControllerName")]
public IEnumerable<string> MyList { get; set; }

然后我将它与编辑器模板一起使用。在我看来,这就是我所说的:
@Html.EditorFor(m => m.MyList)

最后,我的模板采用这个 IEnumarable 并为每个元素创建许多表单元素:
@model IEnumerable<string>
@foreach (var str in Model)
{
<li>
@Html.LabelFor(m => str, "My Label")
@Html.TextBoxFor(m => str)
@Html.ValidationMessageFor(m => str)
</li>
}

即使表单元素确实呈现正确,我是否正确地接近它?另外,我注意到它不再有效。我该如何解决这个问题?

最佳答案

您正在以“正确”的方式进行处理。 (正确的是它可以工作,我之前已经这样做了)但是我认为它不起作用的原因是验证,您对 IEnemerable 进行了验证,而不是在字符串上。
对每个字符串进行验证。你将不得不创建一个新的模型对象说

public class LabelString
{
[Required(ErrorMessage = "This is required.")]
public string labelName { get; set; }
}

然后你有 public IEnumerable<string> MyList { get; set; }将其替换为 public IEnumerable<LabelString> MyList { get; set; }
这应该可以让您对 for 循环中的每个标签进行验证。

关于asp.net-mvc - 在 MVC 3 中将 EditorFor 与 IEnumerable<string> 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com