我正在尝试做一些我认为相对简单但无法使其正常工作的事情,这对某些指针将很有帮助。
我有一个带有文本框列表的表格……可以说,我想找出“您最喜欢的海盗”,并让您在页面上列出所有十个盗版者,并附上评论为什么它们是您的最爱。
因此,我认为:
for (int i =1; i <11; i++)
{%>
<%=Html.TextBoxFor(x => x.Pirate + i, new { size = 30, maxlength = 200 })%>
<%=Html.TextAreaFor(x => x.PirateReason + i, new { cols = 42, rows = 2 })%>
<%
}%>
但是,如何在模型中进行设置?
抱歉,如果不具体。
在我的模型中,我只想存储海盗列表,在我目前正在处理的示例中,只有10名海盗,因此如果必须,我可以这样做
public string Pirate1 { get; set; }
public string Pirate2 { get; set; }
public string Pirate3 { get; set; }
public string Pirate4 { get; set; }
public string Pirate5 { get; set; }
public string Pirate6 { get; set; }
public string Pirate7 { get; set; }
public string Pirate8 { get; set; }
public string Pirate9 { get; set; }
public string Pirate10 { get; set; }
但这太可怕了,如果我想知道您最喜欢的100名海盗该怎么办?
我想将海盗存储在模型中,以便将它们弹出到数据库中或作为电子邮件发送...
非常感谢您的建议。
最佳答案
模型:
public class Pirate
{
public int Id { get; set; }
public string PirateReason { get; set; }
}
控制器动作:
public ActionResult Index()
{
var model = Enumerable
.Range(1, 11)
.Select(i => new Pirate {
Id = i,
PirateReason = string.Format("reason {0}", i)
});
return View(model);
}
IEnumerable<Pirate>
的强类型视图:<%= Html.EditorForModel() %>
编辑器模板(
~Views/Shared/EditorTemplates/Pirate.ascx
):<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SomeNs.Pirate>" %>
<%= Html.TextBoxFor(x => x.Id, new { size = 30, maxlength = 200 }) %>
<%= Html.TextAreaFor(x => x.PirateReason, new { cols = 42, rows = 2 }) %>