对多个页面使用一个控制器CREATE方法ASP.NET Core MVC

时间:2019-01-18 20:30:27

标签: c# asp.net-mvc .net-core asp.net-core-mvc crud

我有多个模型可以在数据库中进行更新。每种模型(例如任务,供应商和发票)都与单个作业相关。当我创建和编辑其中一个模型时(使用相应的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); }

中的DETAILS方法
TowerController

您会看到它还包括特定站点的相关供应商的详细信息。

0 个答案:

没有答案