mvc c#创建带有相关对象列表的新对象

本文关键字:对象 列表 新对象 创建 mvc | 更新日期: 2023-09-27 18:19:58

假设我有一个类

public class Person 
    {
        public int id { get; set; }
        public string name { get; set; }
        public List<int> list_of_friends { get; set; }
    }

好友列表包含作为所选人员好友的人员的ID。我在创建一个表单来创建一个新人时遇到了问题。它应该有两个字段,即id和name,然后是一个所有人的清单,以检查新人是否与他们中的任何人是朋友。到目前为止,我得到了这个:

我的控制器:

 // GET: Person/Create
        public ActionResult Create()
        {
            var model = new Person();
            return View(model);
        }
        // POST: Person/Create
        [HttpPost]
        public ActionResult Create(Person person)
        {
            person.id = new Random().Next();
            try
            {
                var list = (List<Person>)Session["list_of_people"];
                if (list != null)
                {
                    list.Add(person);
                }
                else
                {
                    list = new List<Person>();
                    list.Add(person);
                }
                Session["list_of_people"] = list;
                return RedirectToAction("List");
            }
            catch
            {
                return View();
            }
        }

(我应该使用Session对象-不要感到惊讶)我的观点似乎是问题所在:

<div class="form-horizontal">
        <h4>Person</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @if (Session["list_of_people"] != null)
            {
                List<Person> list = (List<Person>)Session["list_of_people"];
                <p class="lista">List of friends</p>
                @for (int i = 0; i < list.Count; i++)
                {
                    @Html.CheckBoxFor(m => ??)
                    @Html.HiddenFor(m => ??)
                    @Html.LabelFor(m => ??)
                    <br />
                }
            }
        </div>

我不知道该怎么填?"s.有人能帮忙吗?

mvc c#创建带有相关对象列表的新对象

试试这个兄弟,希望它能有所帮助;

@for (var i =0; i< Person.list_of_friends.Count(); i++){
    @Html.HiddenFor(model => model.list_of_friends[i])
    @Html.CheckBoxFor(model => model.list_of_friends[i].Selected)
    @Html.LabelFor(model=> model.list_of_friends[i].name)
}

如果我做对了,它应该会起作用;试着看看这个教程,这可能对你很有帮助:在ASP.NET MVC应用程序中使用实体框架更新相关数据(第6页,共10页)