【问题标题】:Adding checkbox to object in asp.net with razor用剃刀在asp.net中向对象添加复选框
【发布时间】:2016-02-03 08:50:19
【问题描述】:

我在理解 asp.net MVC 中的复选框时遇到了一些麻烦。我正在尝试显示对象列表并为每个对象添加一个复选框。我只是不知道该使用哪种复选框。

我使用通常的 html 或剃须刀 @html.checkbox/checkboxfor 创建了复选框,但我不知道如何将它们连接到对象。

我想选择一些列出的对象,然后在第二步中只显示那些。

有人可以向我解释我应该使用哪个复选框以及如何将它们连接到对象吗?

对象有一个 id,我们可以用它来连接 Checkbox。

我用谷歌搜索了很多,但找不到正确的解释 asp.net mvc 中的使用复选框。

查看

@model List<Person> 
@{
    ViewBag.Title = "ShowView";
}

@foreach (var element in Model)
{
    /*Checkbox*/ <p>@Html.DisplayFor(m => element.Name)</p>
}

型号

    public class Person
    {
        public string Name { get; set; }
        public string Path { get; set; }
        public long Size { get; set; }
        public DateTime LastChange { get; set; }
        public int Id { get; set; }

        public Project(string name, string path, long size, DateTime lastChange, int id)
        {
            this.Name = name;
            this.Path = path;
            this.Size = size;
            this.LastChange = lastChange;
            this.Id = id;
        }
    }

【问题讨论】:

  • 复选框绑定到 bool 属性。向您展示模型并指明您要绑定的属性
  • 我也想绑定到对象 Person,给我一秒钟编辑
  • 您可以使用@Html.CheckBoxFor。更多详情请到链接http://stackoverflow.com/questions/12674572/proper-usage-of-net-mvc-html-checkboxfor
  • 创建一个新的 ViewModel,它将包含一个 Person 类型的对象列表,并且还将包含每个人的标志,该标志将指示该人是否已启用(我只是在这里猜测,因为您没有分享您为什么需要该复选框)。然后在 View 中使用新创建的 ViewModel 并使用 @Html.CheckBoxFor 作为标志和任何你想要的 Person 对象。
  • 创建一个PersonViewModel,其中包含要显示/编辑的Person 属性和一个附加bool IsSelected 属性,并使用for 循环或自定义EditorTemplate 生成项目在集合中

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


【解决方案1】:

首先在你的 person 模型中定义任何 bool 属性。例如

public bool Ischecked { get; set; }

在视图中

@foreach (var element in Model)
{
  <p>@Html.CheckBoxFor(m => element.Ischecked) @Html.DisplayFor(m => element.Name)</p>
}

【讨论】:

  • 您不能使用 foreach 循环为集合属性生成表单控件 - 除了无效的 html 之外,它会创建与模型无关且不会绑定的重复 name 属性。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多