为了账号安全,请及时绑定邮箱和手机立即绑定

在 MVC 中,如何创建将更新父模型和所有子模型的视图?

在 MVC 中,如何创建将更新父模型和所有子模型的视图?

C#
烙印99 2022-06-12 10:55:15
我是 MVC 的新手,仍在尝试阅读和学习绳索,并且出现了这个问题。如果我有一个模型,比如说用户,它看起来像这样:public partial class User{    public int ID { get; set; }    public string Username { get; set; }    public string PasswordHash { get; set; }    public string Email { get; set; }    public virtual Child Child { get; set; }}还有一个模型 Child,它是父 User 的子实体:public partial class Child{    public int ID { get; set;}    public string Name { get; set; }    public virtual Toy Toy { get; set; }}最后一个模型,Toy,它是父模型 Child 的子模型:public partial class Toy{    public int ID { get; set; }    public string ToyName { get; set; }}而且我想创建一个视图,该视图将为所有字段提供可用的字段,我将如何编写控制器/视图,以便如果所有字段都已填充,它将正确创建记录?这样 ToyName 将用于适当的玩具,哪些将用于适当的孩子,哪些将用于适当的用户?这只是我想的一个例子,因为我想尝试做一个宠物项目来练习 MVC,我似乎找不到很多资料来解释如何做到这一点。
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

这真的很简单。


一个极简主义的例子。


视图 EditUser.cshtml:


@model WebApplication2.Models.User


@using (Html.BeginForm("SaveUser", "Home", FormMethod.Get))

{

    @Html.LabelFor(m => m.Username)

    @Html.EditorFor(m => m.Username) <br />


    @Html.LabelFor(m => m.Child.Name)

    @Html.EditorFor(m => m.Child.Name) <br/>


    @Html.LabelFor(m => m.Child.Toy.ToyName)

    @Html.EditorFor(m => m.Child.Toy.ToyName) <br />


    <input type="submit" />


}

Home 控制器中的动作方法:


public ActionResult EditUser(User user)

{

    return View(user);

}


public ActionResult SaveUser(User user)

{

    // Do something with user to save it


    // then show the Edit form again


    return View("EditUser", user);

}


查看完整回答
反对 回复 2022-06-12
?
PIPIONE

TA贡献1829条经验 获得超9个赞

您将不得不为您的用户 ViewModel 搭建脚手架。这将允许您获取用户 -> 孩子 -> 玩具数据。

https://blogs.msdn.microsoft.com/mcsuksoldev/2013/09/20/managing-entity-relationships-with-mvc-scaffolding/


查看完整回答
反对 回复 2022-06-12
?
FFIVE

TA贡献1797条经验 获得超6个赞

您可能不得不使用 Viewmodels 从所有这些不同的表中获取所有数据。检查他们。



查看完整回答
反对 回复 2022-06-12
  • 3 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信