如何将不同的值放入选择控件MVC ASP.NET?

如何将不同的值放入选择控件MVC ASP.NET?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,这是我的索引视图。我尝试使用ViewBag,但它不起作用,可能是因为我想从外键获取值。我是ASP.NET新手 <form id="forma" action="/InspekcijskeKontrole/VratiKontrole" method="get"> <div class="form-group"> <label for="Select1">Odaberite inspekcijsko tijelo:</label> &l

这是我的索引视图。我尝试使用ViewBag,但它不起作用,可能是因为我想从外键获取值。我是ASP.NET新手

<form id="forma" action="/InspekcijskeKontrole/VratiKontrole" method="get">
<div class="form-group">
    <label for="Select1">Odaberite inspekcijsko tijelo:</label>
    <select name="Select1" id="Select1" class="form-control" onchange="sacuvaj()">
        <option value="-1">Selektujte inspekcijsko tijelo:</option>
        @foreach (var i in ViewBag.Select1) {
            <option value="@i.Value">@i.Text</option>
        }
    </select><br />
    <label for="Select2">Odaberite vremenski period kontrole:</label>
    <select name="Select2" id="Select2" class="form-control" onchange="sacuvaj1()">
        <option value="-1">Selektujte vremenski period kontrole:</option>
        @foreach(var i in Model)
        {
            <option value="@i.DatumInspekcijskeKontrole.ToString("dd.MM.yyyy")">@i.DatumInspekcijskeKontrole.ToString("dd.MM.yyyy")</option>
        }
    </select>
</div>

tijelo地区的奥达贝里岩:
蒂耶罗市环境保护局:
@foreach(视图包中的变量i。选择1){
@i、 正文
}

奥达贝里特-维勒曼斯基时期康特罗尔: 塞勒克图伊特·维勒曼斯基时期的康特罗尔: @foreach(模型中的var i) { @i、 Datuminespekcijskekontrole.ToString(“dd.MM.yyyy”) }

这是我的控制器

    public ActionResult VratiKontrole(int Select1, string Select2)
    {

        IEnumerable<string> tijelaNaziv = db.InspekcijskaKontrolas.OrderBy(i => i.InspekcijskoTijelo.NazivInspekcijskogTijela).Select(i => i.InspekcijskoTijelo.NazivInspekcijskogTijela).Distinct();
        ViewBag.Select1 = new SelectList(tijelaNaziv);


        IQueryable<InspekcijskaKontrola> listaKontrola = db.InspekcijskaKontrolas.Select(i => i);

        if (!string.IsNullOrEmpty(Select1.ToString())&&!string.IsNullOrEmpty(Select2.ToString()))
        {
            string[] parts = Select2.Split('.');
            DateTime datum = new DateTime(int.Parse(parts[2]), int.Parse(parts[1]), int.Parse(parts[0]));
            listaKontrola = listaKontrola.Where(l => l.InspekcijskoTijeloId == Select1).Where(l => l.DatumInspekcijskeKontrole == datum).Select(l => l);
        }

        return View(listaKontrola.ToList());

    }
public ActionResult VratiKontrole(int-Select1,string-Select2)
{
IEnumerable tijelaNaziv=db.InspekcijskaKontrolas.OrderBy(i=>i.inspekcijkotijelo.nazivinpekcijkotijela)。选择(i=>i.inspekcijkotijelo.nazivinpekcijkotijela)。Distinct();
ViewBag.Select1=新选择列表(tijelaNaziv);
IQueryable listaKontrola=db.InspekcijskaKontrolas.Select(i=>i);
如果(!string.IsNullOrEmpty(Select1.ToString())和&!string.IsNullOrEmpty(Select2.ToString())
{
string[]parts=Select2.Split('.');
DateTime数据=新的日期时间(int.Parse(部分[2])、int.Parse(部分[1])、int.Parse(部分[0]);
listaKontrola=listaKontrola.Where(l=>l.InspekcijskoTijeloId==Select1.Where(l=>l.datuminespekcijskontrole==datum.Select(l=>l);
}
返回视图(listakontola.ToList());
}
(代表OP发布)

这个问题解决了。我刚才提到:

@foreach (var i in Model.Select(i=>i.InspekcijskoTijelo).Distinct()) {
    <option value="@i.InspekcijskoTijeloId">@i.NazivInspekcijskogTijela</option>
}
@foreach(Model.Select(i=>i.InspekcijskoTijelo).Distinct()中的变量i){
@i、 NazivInspekcijskogTijela
}

您正在调用
Distinct()
。这是不是给了你不同的价值观?你真正的问题是什么?您不使用Html.dropdownlistforhelper方法有什么具体原因吗?没有,我只是得到了错误null引用,可能是因为这是外键?哪一行得到了null引用?请在问题本身中包含相关详细信息。在
@foreach(ViewBag.Select1中的var i){@i.Text}
ViewBag.Select1I上,我不使用帮助程序,因为我想使用此选择控件进行过滤