ASP.NET MVC 表单编辑并添加到集合属性

发布于 2024-11-02 21:02:07 字数 580 浏览 0 评论 0原文

我有一个如下所示的模型:

public class Book
{
    public string Name { get; set; }
    public IEnumerable<Author> Authors { get; set; }
}

public class Author
{
    public string FullName { get; set; }
    public DateTime BirthDate { get; set; }
}

我在视图中有一个用于编辑书籍的表单。用于编辑作者集合的部分处于部分视图中。表单字段是使用 Html.EditorFor() 方法生成的。

它非常适合编辑现有数据。我想做的是在作者编辑部分视图中放入多个空白条目,如果用户填写它们,它们将作为新项目添加到作者集合中。

最终视图应如下所示: http://s1.postimage.org/6g9rqfp20/image.jpg

正确的是实现这种行为的方法?

I have a model that looks like this:

public class Book
{
    public string Name { get; set; }
    public IEnumerable<Author> Authors { get; set; }
}

public class Author
{
    public string FullName { get; set; }
    public DateTime BirthDate { get; set; }
}

I have a form in a view for editing a book. The section for editing the Authors collection is in a partial view. The form fields are generated with the Html.EditorFor() method.

It works well for editing existing data. What I would like to do is to put in the Authors editing partial view multiple blank entries that if the user fills them they will be added as new items to the Authors collection.

The final view should look something like this:
http://s1.postimage.org/6g9rqfp20/image.jpg

What is the correct way to achieve this behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忆梦 2024-11-09 21:02:07

我不确定您对使用 javascript 库来完成您想要完成的事情有多感兴趣,但这里有一个很好的示例,说明您正在尝试做的事情: 联系人编辑器示例

它使用 knockouts 库,它允许您使用 JavaScript数据绑定。这也为您带来了用户普遍喜欢的网络上良好的厚重应用程序感觉。

如果您仍然对服务器端的工作原理感到好奇,可以查看 Mix11< 中的演示文稿/a>

祝你好运。

I am not sure how interested you are in using javascript libraries to get what you are looking to get done, but here is a great example of what you are trying to do: Contact Editor Example

It uses the knockouts library which allows you to work with JavaScript data binding. This also gives you a nice thick application feel on the web which users generally like.

If you are still curious about how this works with serverside, you can look at this presentation from Mix11

Good luck.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文