在ASP.NET MVC中,TextBoxFor
是一个辅助方法,用于在视图中创建一个与模型属性绑定的文本框。如果你想在 for
循环内动态分配模型对象给 TextBoxFor
,你需要确保每个文本框都有一个唯一的名称和ID,以便正确地绑定回模型。
以下是一个示例,展示了如何在 for
循环中使用 TextBoxFor
:
首先,定义一个包含列表属性的模型:
public class MyModel
{
public List<string> Items { get; set; }
}
在视图中,你可以这样使用 for
循环来创建文本框:
@model MyModel
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Items.Count; i++)
{
@Html.TextBoxFor(m => m.Items[i], new { id = "item_" + i })
}
<input type="submit" value="Submit" />
}
在控制器中,处理表单提交并显示模型:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyModel
{
Items = new List<string> { "Item1", "Item2", "Item3" }
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyModel model)
{
// 处理提交的数据
foreach (var item in model.Items)
{
// 处理每个项目
}
return View(model);
}
}
MyModel
类包含一个 List<string>
类型的属性 Items
,用于存储文本框的值。for
循环遍历 Model.Items
列表。@Html.TextBoxFor(m => m.Items[i])
创建一个文本框,并将其绑定到 Items
列表的当前元素。new { id = "item_" + i }
确保每个文本框有一个唯一的ID。Index
方法初始化模型并返回视图。[HttpPost] Index
方法处理表单提交,接收模型并处理其中的 Items
。这种模式常用于需要动态添加或编辑多个项目的情况,如创建一个待办事项列表或产品清单。
通过这种方式,你可以有效地在 for
循环中动态分配模型对象给 TextBoxFor
,并确保数据的正确绑定和处理。
领取专属 10元无门槛券
手把手带您无忧上云