使用两个模型在一个视图中填充两个下拉列表

时间:2013-08-30 16:07:40

标签: asp.net-mvc asp.net-mvc-4

我的局部视图中有两个下拉列表。 我想填补它们。当然来自不同的表格。 所以我必须在我看来使用两种不同的模型。 我是通过viewbag来做到的。 如下所示:

我的课程:

         public class HelperClass

        {

       public static List<tbl_TypeOfSend> GetTypSend()
        { 
        using(var db=new ProjectContext())
        {
            var Lst = db. tbl_TypeOfSend.ToList();
            return Lst;
        }


    }
    public static List<tbl_TypOfPaye> GetTypPay()
    {
        using (var db = new ProjectContext())
        {
            var Lst = db. tbl_TypOfPaye.ToList();
            return 
        }
        }



        }

我的控制器:

       public ActionResult MyAction()
        {
        ViewBag. TypSend = HelperClass.GetTypSend ();
        ViewBag. GetTypPay = HelperClass.GetTypPay ();
        return PartialView();
        }

在视图中: 我想要一些像下面这样的东西。我知道它不起作用。我可以做到。

              @model List<Project.Models. tbl_TypeOfSend >

                        <select  id="id" class="span5">
                            <option>select type send</option>
                           @foreach (var item in ViewBag.TypSend)
                            {

                            <option  value="@item.id"> @item.TypesendField </option>
                            }

                        </select>
                     .
                     .
                     .
                     .


                      @model List<Project.Models. tbl_TypOfPaye >
                        <select class="span5">
                           <option>--- select type payment ---</option>
                             @foreach (var item in ViewBag. GetTypPay)
                            {

                            <option value="@item.id">@item.TypePaymentField</option>
                             }
                        </select>

1 个答案:

答案 0 :(得分:0)

只需更改此行

@foreach (var item in ViewBag.TypSend as List<tbl_TypeOfSend>)

@foreach (var item in ViewBag.GetTypPay as List<tbl_TypOfPaye>)

它会起作用!

PS:顺便说一下,我不喜欢你从数据库中获取数据的方式,我认为在一次通话中获取数据会更好