Я хочу создать приложение для отчета, и я застрял с тех пор, как получил эти ошибки, и я понятия не имею, что делать. Поэтому я попытаюсь объяснить, что я хочу: в одном представлении есть два dropdown lists
, то есть два разных Models
. Таким образом, один dropdown
использует Model 1
, а другой dropdown
использует Model 2
. Я создал два разных действия для обоих этих выпадающих списков
public interface IDemIzvjestaji
{
public List<DvojkaVM> VratiTipove();
public List<DvojkaVM> VratiDefinicije();
}
И реализовал эти методы внутри моих Service
using IZ.BLL.Interfejsi;
using IZ.Model.DBModels;
using IZ.Model.VM;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using Formatting = Newtonsoft.Json.Formatting;
namespace IZ.BLL.Servisi
{
public class DemIzvjestajiServis : IDemIzvjestaji
{
private AppDBContext _context;
public DemIzvjestajiServis(AppDBContext context)
{
_context = context;
}
public bool DemirMetodaDemo()
{
return true;
}
public List<DvojkaVM> VratiDefinicije()
{
var def = _context.IzvjestajDefinicija.ToList();
if (def.Count == 0)
return null;
var defVM = new List<DvojkaVM>();
foreach(var item in def)
{
var izvDef = new DvojkaVM();
izvDef.text1 = item.IzvjestajDefinicijaId.ToString();
izvDef.text2 = item.KratkiNaziv;
defVM.Add(izvDef);
}
return defVM;
}
public List<DvojkaVM> VratiTipove()
{
var lista = _context.IzvjestajTip.ToList();
if (lista.Count == 0)
return null;
var listaVM = new List<DvojkaVM>();
foreach(var i in lista)
{
var tipVM = new DvojkaVM();
tipVM.text1 = i.IzvjestajTipId.ToString();
tipVM.text2 = i.Naziv;
listaVM.Add(tipVM);
}
return listaVM;
}
}
}
And In my Controller I created Action and use ViewBag to send data to View
public IActionResult TipIzvjestaja()
{
ViewBag.SelektTip = _demIzvjestajiServis.VratiTipove();
return View("Index");
}
public IActionResult IzvjestajDefinicija()
{
ViewBag.SelektDef = _demIzvjestajiServis.VratiDefinicije();
return View("Index");
}
И на экране я отображаю два раскрывающихся списка.
<div>
<p>Odaberi Tip izvještaja:</p>
<select asp-items="@(new SelectList(ViewBag.SelektTip,"text1","text2"))" class="row form-control col-4">
<option value="0">Odaberite</option>
</select>
</div>
<div>
<p>Odaberi Definiciju Izvjestaja:</p>
<select asp-items="@(new SelectList(ViewBag.SelektDef ,"text1","text2"))" class="row form-control col-4">
<option value="0">Odaberite</option>
</select>
</div>
После этого я получаю сообщение об ошибке
ArgumentNullException: Value cannot be null. (Parameter 'items')
<select asp-items="@(new SelectList(ViewBag.SelektDef ,"text1","text2"))" class="row form-control col-4">
Я исправил эту ошибку, когда разделил эти два действия, создал другой просмотр и поместил список DropDown, но я хочу, чтобы они были в одном просмотре есть два dropdown
списков. Если кто-то может мне помочь, я буду очень благодарен.