我有多个模型可以在数据库中进行更新。每种模型(例如任务,供应商和发票)都与单个作业相关。当我创建和编辑其中一个模型时(使用相应的CRUD页面),我希望它为所有可用模型打开一个创建/编辑页面。例如,如果我创建一个新的工作站点,我还希望该选项可以添加到供应商,任务等中。如果我编辑一个工作站点,那么我还希望该选项可以编辑所有其他模型。就目前而言,将这些模型的详细信息显示为一页很简单。使create函数以相同的方式工作更加困难。是否可以使用我的控制器的create方法之一作为另一个控制器/模型的创建方法?是否可以对“编辑”和“删除”功能执行相同的操作?这是Create方法的控制器外观。
onpaste=""
以及供应商控制器的CREATE方法(我尚未从// GET: Towers/Create
public IActionResult Create()
{
return View();
}
// POST: Towers/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,SiteId,SiteName,TowerHeight,TowerType,TaskOrder,Street,City,State,Zip,CrossStreet,Latitude,Longitude,Notes,StartDate,EndDate,ParsonsPm,ParsonsRe,DecomCrewNum,ActualStartDate,ActualEndDate")] Tower tower)
{
if (ModelState.IsValid)
{
_context.Add(tower);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(tower);
}
脚手架中对其进行编辑)
dotnet
作为参考,这是我的// GET: Vendors/Create
public IActionResult Create()
{
ViewData["TowerId"] = new SelectList(_context.Tower, "Id", "Id");
return View();
}
// POST: Vendors/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("VendorId,CraneVendor,CranePhone,PortableToiletVendor,PortableToiletPhone,ForkliftVendor,ForkliftPhone,SkidSteerVendor,SkidSteerPhone,ExcavatorVendor,ExcavatorPhone,LoaderVendor,LoaderPhone,SteelDumpstersVendor,SteelDumpstersPhone,ConcreteDumpstersVendor,ConcreteDumpstersPhone,CraneCallOffNum,CraneOnRent,CraneOffRent,PortableToiletOnRent,PortableToiletOffRent,ForkliftOnRent,ForkliftOffRent,SkidSteerOnRent,SkidSteerOffRent,ExcavatorOnRent,ExcavatorOffRent,LoaderOnRent,LoaderOffRent,SteelDumpstersOnRent,SteelDumpstersOffRent,ConcreteDumpstersOnRent,ConcreteDumpstersOffRent,ForkliftCallOffNum,SkidSteerCallOffNum,ExcavatorCallOffNum,LoaderCallOffNum,SteelDumpsterCallOffNum,ConcreteDumpsterCallOffNum,TowerId")] Vendor vendor)
{
if (ModelState.IsValid)
{
_context.Add(vendor);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
ViewData["TowerId"] = new SelectList(_context.Tower, "Id", "Id", vendor.TowerId);
return View(vendor);
}
TowerController
您会看到它还包括特定站点的相关供应商的详细信息。