ASP.NETCore6.0RazorWebPages:实现1:n关系的一个编辑页面
创始人
2024-09-17 13:00:59
0

在ASP.NET Core 6.0 Razor Web Pages中,如果需要在一个编辑页面中实现1:n关系,可以按照如下步骤操作。

1.创建一个ViewModel类,用于在页面上绑定所有相关模型实体。例如:

public class EditViewModel
{
    public Person Person { get; set; }
    public List Hobbies { get; set; }
}

其中,Person表示单个实体,Hobbies则表示一个实体列表。

2.在控制器中获取实体并将它们传递给ViewModel。例如:

public IActionResult Edit(int id)
{
    var person = _dbContext.Persons.Find(id);
    if (person == null)
    {
        return NotFound();
    }

    var hobbies = _dbContext.Hobbies.Where(h => h.PersonId == id).ToList();

    EditViewModel viewModel = new EditViewModel
    {
        Person = person,
        Hobbies = hobbies
    };

    return View(viewModel);
}

其中,_dbContext是DBContext的实例,Persons和Hobbies是DbSet和DbSet的属性。

3.在视图中使用ViewModel绑定每个控件。例如:

@model EditViewModel

@for (int i = 0; i < Model.Hobbies.Count; i++) { }

其中,asp-for属性用于将ViewModel中的属性绑定到HTML中的控件。

4.在提交表单时,控制器会接收到ViewModel,需要更新数据库中的实体。例如:

[HttpPost]
public IActionResult Edit(EditViewModel viewModel)
{
    var person = _dbContext.Persons.Find(viewModel.Person.Id);
    if (person != null)
    {
        person.Name = viewModel.Person.Name;

        foreach (var hobby in viewModel.Hobbies)
        {
            var dbHobby = _dbContext.Hobbies.Find(hobby.Id);
            if (dbHobby != null)
            {
                dbHobby.Selected = hobby.Selected;
            }
        }

        _dbContext.SaveChanges();
    }

    return RedirectToAction(nameof(Index));
}

其中,_dbContext是DBContext的实例,Persons和Hobbies是DbSet和DbSet的属性。

通过以上步骤,就可以在一个编辑页面中实现1:n关系。

相关内容

热门资讯

揭秘真相"哥哥打大a... 揭秘真相"哥哥打大a辅助工具视频"开挂(神器)辅助神器有挂分析-必备教程>>您好:软件加136704...
最新技巧"微信公众号... 微信公众号辅助工具开挂教程视频分享装挂详细步骤在当今的网络游戏中,微信公众号辅助工具作为一种经典的娱...
来一盘"微乐云南小程... 来一盘"微乐云南小程序修改器ios"开挂(神器)辅助神器有挂秘诀-必赢教程 【无需打开直接搜索加薇1...
透视脚本"至友互娱情... 透视脚本"至友互娱情怀房卡"开挂(神器)辅助神器讲解有挂-详细教程>>您好:软件加136704302...
程序员教你"微乐陕西... 微乐陕西小程序破解器下载 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理...
专业讨论"新道游戏辅... 专业讨论"新道游戏辅助器免费版"开挂(插件)辅助插件竟然有挂-新2026教程>>您好:软件加1367...
揭秘攻略"拱趴大菠萝... 揭秘攻略"拱趴大菠萝玩的是运气吗"开挂(平台)辅助平台有挂秘笈-新2026教程;无需打开直接搜索薇:...
最新技巧"新星游辅助... 新星游辅助软件 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1、...
科技通报"哈局13张... 科技通报"哈局13张辅助器"开挂(工具)辅助工具有挂工具-必胜教程;无需打开直接搜索加(薇:1367...
热点推荐"白银胡乐辅... >>您好:白银胡乐辅助脚本下载确实是有挂的,很多玩家在这款白银胡乐辅助脚本下载游戏中打牌都会发现很多...