模型将回发数据绑定到类型为 List 的控制器操作参数

2024-01-13

我对类型有很强的类型观

List<List<MyViewModelClass>>

外部列表总是有两个列表List<MyViewModelClass>。对于两个外部列表中的每一个,我想显示一组复选框。每组可以有任意数量的选择。

我的视图模型类看起来与此类似:

public class MyViewModelClass
{
    public Area Area { get; set; }

    public bool IsGeneric { get; set; }

    public string Code { get; set; }

    public bool IsChecked { get; set; }
}

所以最终的视图将类似于:


请选择适用的:

第一组选择:

  • x Option 1
  • x Option 2
  • x Option 3
  • etc.

第二组选择:

  • x Second Option 1
  • x Second Option 2
  • x Second Option 3
  • x Second Option 4
  • etc.

应显示复选框MyViewModelClass.Area.Name,它们的值应该与MyViewModelClass.Area.Id。检查状态当然与MyViewModel.IsChecked.

Question

我想知道我应该如何使用Html.CheckBox() or Html.CheckBoxFor()显示我的复选框的助手?当然,我必须在回发时将这些值返回到服务器。

我想让我的控制器执行以下操作之一:

public ActionResult ConsumeSelections(List<List<MyViewModelClass>> data)
{
    // process data
}

public ActionResult ConsumeSelections(List<MyViewModelClass> first, List<MyViewModelClass> second)
{
    // process data
}

如果它让事情变得更简单,我可以制作一个单独的视图模型类型,例如:

public class Options
{
    public List<MyViewModelClass> First { get; set; }

    public List<MyViewModelClass> Second { get; set; }
}

以及将我的第一个版本的控制器操作更改为:

public ActionResult ConsumeSelections(Options data)
{
    // process data
}

通常,我创建一个类型(模型)来“建模”我想要创建的视图。 IE。

public class FooViewModel
{
    public List<Option> General { get; set; }
    public List<Option> Others { get; set; }

    //Some Methods and other properties
}
public FooController :...
{
    private FooViewModel fooViewModel = new FooViewModel();
}

编辑: 看一下这个帖子 https://stackoverflow.com/questions/220020/how-to-handle-checkboxes-in-asp-net-mvc-forms,因为这正是您想要的!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模型将回发数据绑定到类型为 List 的控制器操作参数 的相关文章

  • 使用 Caliburn.Micro 将绑定选择更改为 ViewModel

    我们在一个新的 Silverlight 项目中使用了 Caliburn Micro 一切都运行良好 内置约定将按钮单击事件绑定到 viewModel 但我不确定处理数据网格和组合框上的 SelectionChanged 事件的最佳方法是什么
  • 错误:此 PlotModel 已被其他 PlotView 控件使用

    我有两个选项卡绑定到一个viewmodel其中包含一个PlotModel of oxyplot并查看通过选择的模型DataTemplate 当单击第一个选项卡时viewmodel已正确绑定 但当切换到标题中定义的上面第二个选项卡时 会抛出异
  • 使用继承的 MVC2 DataAnnotations 验证

    我有一个 NET 2 0 类 其属性被标记为 virtual 我需要在 MVC2 应用程序中使用该类作为模型 因此 我创建了一个继承自 NET 2 0 类的 NET 3 5 类 并将 DataAnnotations 属性添加到新类中的重写属
  • WPF MVVM 在窗口关闭时调用 ViewModel Save 方法

    我已经弄清楚如何从我的 ViewModel 关闭窗口 现在我需要从另一侧解决窗口关闭问题 当用户单击窗口的关闭按钮时 我需要在 ViewModel 中触发 Save 方法 我正在考虑将 Command 属性绑定到 Window 的关闭事件
  • 如何在 ASP.NET MVC 2.0 中的视图之外创建 HtmlHelper?

    我们正在将 ASP NET MVC 1 0 应用程序升级到 2 0 版本 部分代码需要使用 LinkExtensions 而 LinkExtensions 需要 HtmlHelper 才能呈现 虽然我们知道某些代码没有正确遵循 MVC 模型
  • Android中如何通过ViewModel类在Activity和Fragment之间共享数据?

    我想知道是否可以传递一个在 Activity 类中声明的字符串数据 并将该字符串数据传递给 ViewModel 类 然后将数据传递给 Fragment 类 视图模型类 class TimeTableViewModel extends Vie
  • UrlHelper 扩展方法不起作用

    我正在尝试向我的 MVC 2 项目添加扩展方法 但没有成功 经过几个小时的谷歌搜索和查看这里后我不知所措 我创建了一个全新的 MVC 2 项目 以确保我现有的项目没有任何奇怪的地方 但我仍然面临同样的问题 我确信这是一种 只见树木 不见森林
  • <%: 和 <%= 与嵌入代码(表达式)块相同吗

    刚开始使用 MVC 2 我注意到他们在入门模板中使用 我确信在 MVC 1 中它是 它们是一样的吗 如果是这样 为什么从等号改为冒号 冒号语法意味着您将自动进行 html 编码 http haacked com archive 2009 0
  • 在 ASP.NET MVC 2 中使用 name="array_name[]" 作为表单元素发布数组

    再会 在 PHP 中 可以使用方括号将 name 属性分配给输入元素 如下所示 name my value PHP 会在服务器端自动将其转换为数组 这在 ASP NET MVC 中可能吗 如果没有 是否有其他方法可以在 ASP NET MV
  • 当视图模型类型为包含超过 4 个项目的元组时,Asp.net mvc 2 .net 4.0 出现错误

    当我在 Asp net mvc 2 net 4 0 中使用模型类型 Tuple 创建强类型视图时 当 Tuple 具有超过 4 个项目时 我会收到错误 示例1 视图类型是Tuple
  • ASP.NET MVC 的示例 MS 应用程序?

    我正在开始我的第一个 MVC 项目 并希望有一个良好的开端 我了解如何创建快速但肮脏的 MVC 应用程序的基础知识 但是 我想获得使用开发 ASP NET MVC 应用程序最佳实践的资源 文档或示例快速入门应用程序 任何帮助表示赞赏 书呆子
  • ASP.NET MVC - 更新生产中的预编译 Razor View 文件

    我想知道以下是否可能 通过在 Visual Studio 中打开项目设置 使用我们的 MVC 应用程序预编译 Razor 视图 将应用程序部署到生产环境 然后在稍后阶段 通过覆盖生产中现有的 cshtml 文件来更新视图 而无需回收应用程序
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • ViewDataFactory 和强类型母版页

    我试图让我的强类型母版页在我的 ASP MVC 2 0 应用程序中工作 在这两篇文章的帮助下我已经取得了很大的进展 在 ASP NET MVC 中将数据传递到母版页 https stackoverflow com questions 785
  • Ajax 长轮询无法正常工作

    我正在 MVC 2 中使用长轮询开发一个简单的陌生人聊天应用程序 如果我在不同的浏览器中打开应用程序 它在我的开发机器上工作正常 我的意思是 如果我在 IE 和 mozilla 中加载应用程序 它工作正常 如果我在浏览器的两个选项卡 例如
  • 使用 Ninject 2 在基本控制器中进行属性注入

    我的 Global aspx 中有以下代码 protected override void OnApplicationStarted AreaRegistration RegisterAllAreas RegisterRoutes Rout
  • Knockout.js:有条件绑定div的title属性

    我的页面上有一个 viewModel 它保存一些设备当前状态概述的数据 到目前为止 除了一个问题之外 一切都运行良好 我需要根据 viewModel 中的另一个值设置 div 元素的 title 属性 我知道您基本上可以像这样设置 titl
  • MVC 3 将实体作为接口传递

    我目前正在开发一个 MVC 3 项目 使用 Ninject 作为我的 DI 业务对象存储在单独的程序集中 我遇到了控制器参数的问题 当回发 CRUD 操作时 我收到错误 无法创建接口实例 我知道您无法创建接口的实例 但似乎解决此问题的唯一方
  • Android Compose MVVM - 如何在不带参数的 Composable 函数中引用 viewModel 对象?

    将如何 Composable ContentFeed 函数访问viewModel哪个是在活动中创建的 依赖注入 或者这是一种错误的做事方式 这viewModel应该始终只有一个实例 MainActivity kt class MainAct
  • ASP.NET MVC2 - 将视图呈现为字符串

    如何在 MVC 2 中将视图渲染为控制器中的字符串 在 MVC 1 中 我使用了捕获ActionHtml http mikehadlow blogspot com 2008 06 mvc framework capturing output

随机推荐