gpt4 book ai didi

html - ASP MVC 如何为具有子元素的模型创建编辑器?

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:27 25 4
gpt4 key购买 nike

我是 asp 新手。我必须在 mvc 中编写一个应用程序,它有一个数据库,我有两个表。一张表 Parent 与表 Children 是一对多的。

Parent
-------------
parent_id
name


Children
-------------
children_id
parent_id (foreign key)
name

当用户想要为父表创建元素时,编辑器必须有机会添加(创建)子表。

当用户编辑 Parent 时,他应该有机会删除/编辑 Children。

无法在单独的编辑器中添加/编辑/删除子项

我想我应该使用 javascript 为 Child 生成更多控件。我可以这样做,但我不知道如何将此 html 控件映射到模型?

我写了这个 View :

<script language="javascript" type="text/javascript">
function add_child() {
$('#children').append($('<input name="child[' + ++$('#children>input').get().length + ']" />'));
}
</script>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Create Parent</legend>

<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>


<div>Children:</div>
<div id="children">
@Html.TextBox("child[1]")
</div>
<div>
<input onclick="add_child()" type="button" />
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}

这很好用。但我真的不知道如何将这个元素映射到我的父模型上。

现在我创建 View 的模型如下所示:

public class ParentModel {
public ParentModel() {
Children = //... get all children from database
}

public string Name { get; set; }
// this should be an ids of selected children
public string[] SelectedChildren { get; set; }
// children to display
public ICollection<ChildModel> Children { get; set; }

}

public class ChildModel {
public string Name { get; set; }
}

如何用 View 中的值填充这个Children?

Controller :

public class ParentController : Controller
{
// show form
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index() {
ParentModel model = new ParentModel();
return View(model);
}

// Get Parent and Children
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(ParentModel form) {
// I want to read a form.CreatedChildren
// but it is Null
return View();
}

}

我想读取一个 form.CreatedChildren 但它是 Null...

最佳答案

您可以查看 following blog post .和 followup关于验证。

关于html - ASP MVC 如何为具有子元素的模型创建编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com