首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ASP.NET MVC中将ViewModel中的列表从视图传递到控制器

在ASP.NET MVC中,可以通过以下步骤将ViewModel中的列表从视图传递到控制器:

  1. 首先,在视图中定义一个表单,用于提交数据到控制器。可以使用HTML的<form>标签或者使用Html.BeginForm()方法创建表单。
  2. 在表单中,使用@foreach循环遍历ViewModel中的列表,并为每个列表项创建一个表单元素。例如,可以使用<input>标签或者Html.TextBoxFor()方法创建文本框。
  3. 为每个表单元素设置一个唯一的名称,并将ViewModel中的列表项的值绑定到表单元素上。可以使用@Html.HiddenFor()方法创建隐藏字段,将列表项的值传递到控制器。
  4. 在表单中添加一个提交按钮,用于将数据提交到控制器。可以使用<input type="submit">标签或者Html.SubmitButton()方法创建提交按钮。
  5. 在控制器的相应动作方法中,接收ViewModel作为参数,并使用模型绑定将表单数据绑定到ViewModel中。可以使用[HttpPost]特性标记动作方法,以确保只有在POST请求时才能访问该方法。

以下是一个示例代码:

在视图中(例如,Index.cshtml):

代码语言:txt
复制
@model YourViewModel

@using (Html.BeginForm("YourAction", "YourController", FormMethod.Post))
{
    @foreach (var item in Model.YourList)
    {
        @Html.HiddenFor(modelItem => item.Id)
        @Html.TextBoxFor(modelItem => item.Name)
    }

    <input type="submit" value="Submit">
}

在控制器中:

代码语言:txt
复制
[HttpPost]
public ActionResult YourAction(YourViewModel viewModel)
{
    // 在这里处理接收到的ViewModel数据
    // 可以访问viewModel.YourList来获取列表数据

    return RedirectToAction("Index");
}

请注意,以上示例中的代码仅供参考,具体实现可能会根据项目的需求和架构而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券