MVC如何将数据插入到模型内的列表中

时间:2015-09-25 08:43:53

标签: c# asp.net-mvc razor model

我正在使用MVC和razor,我有两个模型:

public class bookModel {
  public int ID {get;set;}
  public string title {get;set;}
  public List<otherStuff> stuff {get;set}
}
public class otherStuff {
  public string text {get;set;}
  public int page {get;set;}
}

如何从视图中将stuff插入otherStuff
视图看起来像这样:

@model name.models.bookModel
@using (html.beginForm("action", "controller", FormMethod.Post, null)){
  @html.textBox("title")
  ...
}

和行动:

[HttpPost]
public ActionResult action (bookModel model) {
  //do something
}

此时我可以访问标题。但我仍然没有找到如何将stuff插入ortherStuff并在操作内部访问它。

1 个答案:

答案 0 :(得分:1)

您需要在视图中循环List<otherStuff>并输出如下控件:

for (int i = 0; i < Model.stuff.Count; i++)
{
   @Html.TextBoxFor(x => x.stuff[i].text)
}

控件将使用名称中的索引进行渲染,如下所示:

<input name="stuff[3].text" type="text" etc..

当您向控制器发帖时,您可以迭代提交的stuff数据,如下所示:

foreach (var item in model.stuff)
{
}