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

我是 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,我似乎找不到很多资料来解释如何做到这一点。


烙印99
浏览 119回答 3
3回答

犯罪嫌疑人X

这真的很简单。一个极简主义的例子。视图 EditUser.cshtml:@model WebApplication2.Models.User@using (Html.BeginForm("SaveUser", "Home", FormMethod.Get)){&nbsp; &nbsp; @Html.LabelFor(m => m.Username)&nbsp; &nbsp; @Html.EditorFor(m => m.Username) <br />&nbsp; &nbsp; @Html.LabelFor(m => m.Child.Name)&nbsp; &nbsp; @Html.EditorFor(m => m.Child.Name) <br/>&nbsp; &nbsp; @Html.LabelFor(m => m.Child.Toy.ToyName)&nbsp; &nbsp; @Html.EditorFor(m => m.Child.Toy.ToyName) <br />&nbsp; &nbsp; <input type="submit" />}Home 控制器中的动作方法:public ActionResult EditUser(User user){&nbsp; &nbsp; return View(user);}public ActionResult SaveUser(User user){&nbsp; &nbsp; // Do something with user to save it&nbsp; &nbsp; // then show the Edit form again&nbsp; &nbsp; return View("EditUser", user);}

PIPIONE

您将不得不为您的用户 ViewModel 搭建脚手架。这将允许您获取用户 -> 孩子 -> 玩具数据。https://blogs.msdn.microsoft.com/mcsuksoldev/2013/09/20/managing-entity-relationships-with-mvc-scaffolding/

FFIVE

您可能不得不使用 Viewmodels 从所有这些不同的表中获取所有数据。检查他们。
打开App,查看更多内容
随时随地看视频慕课网APP