gpt4 book ai didi

c# - 创建发布多个模型的函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:58 24 4
gpt4 key购买 nike

我正在开发一个 .NET Core 2.0 应用程序,我有一个 View ,其中包含两个不同模型(组件)的许多实例。我想创建这些模型的所有实例并将其发布到数据库,但我无法将它们全部发布。目前只有两个模型的第一个实例(行)发布到 Db。

所以我的问题是:是否可以做这样的事情?如果是这样的话,怎么做到的?

下面是我的代码中的几个示例。

我的 View 模型:

public class SheetData
{
public int ID { get; set; }

public Sheet Sheet { get; set; }
public Component Components { get; set; }
public Values Values { get; set; }
}

Razorview:(只是整个 View 的一小部分)

<div class="row">
<div class="form-group">
<div class="col-md-4">
<span>
<label asp-for="Components.Name" class="control-label"></label>
<input asp-for="Components.Name" class="form-control" value="UpperAnnular" readonly />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.OpenTime" class="control-label"></label>
<input asp-for="Values.OpenTime" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.OpenGal" class="control-label"></label>
<input asp-for="Values.OpenGal" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.CloseTime" class="control-label"></label>
<input asp-for="Values.CloseTime" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.CloseGal" class="control-label"></label>
<input asp-for="Values.CloseGal" class="form-control" />
</span>
</div>
</div>
</div>


<div class="row">
<div class="form-group">
<div class="col-md-4">
<span>
<label asp-for="Components.Name" class="control-label"></label>
<input asp-for="Components.Name" class="form-control" value="LowerAnnular" readonly />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.OpenTime" class="control-label"></label>
<input asp-for="Values.OpenTime" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.OpenGal" class="control-label"></label>
<input asp-for="Values.OpenGal" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.CloseTime" class="control-label"></label>
<input asp-for="Values.CloseTime" class="form-control" />
</span>
</div>
<div class="col-md-1">
<span>
<label asp-for="Values.CloseGal" class="control-label"></label>
<input asp-for="Values.CloseGal" class="form-control" />
</span>
</div>
</div>
</div>

Controller :

// GET:
public IActionResult Sheet ()
{
var model = new SheetData();
model.Sheet = new Sheet();
model.Components = new Component();
model.Values = new Values();
//model.Events = new Event();

return View(model);
}


// POST: Sheet/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Sheet(SheetData viewModel)
{
Sheet sheet = viewModel.Sheet;
Component component = viewModel.Components;
Values values = viewModel.Values;

if (ModelState.IsValid)
{

//values.ComponentID = component.ComponentID;

_context.Add(sheet);
//await _context.SaveChangesAsync();

_context.Add(values);
//await _context.SaveChangesAsync();

component.SheetID = sheet.ID;
component.ValuesID = values.ID;

_context.Add(component);
await _context.SaveChangesAsync();

return RedirectToAction(nameof(Index));
}

return RedirectToAction(nameof(Index));
}

最佳答案

Values 属性必须是一个集合(例如 List)。然后在您的 Razor 页面上,您可以通过索引指向每个元素:

            <span>
<label asp-for="Values[0].OpenTime" class="control-label"></label>
<input asp-for="Values[0].OpenTime" class="form-control" />
</span>

关于c# - 创建发布多个模型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46688027/

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