【问题标题】:Passing 1 viewbag 2 lists to 1 view将 1 个 viewbag 2 个列表传递给 1 个视图
【发布时间】:2014-05-05 12:17:34
【问题描述】:

我想在一个页面(仪表板页面)中显示个人信息、最近的约会和即将到来的约会。这是我的控制器我收到错误“检测到无法访问的代码”

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace DentAppSys.Controllers
    {
        public class PatientController : Controller
        {
            //
            // GET: /Patient/
            public ActionResult Index()
            {
                if (Session["UserEmail"] != null)
                {
                    string Email = (string)Session["UserEmail"];

                    using (var db = new MaindbModelDataContext())
                    {
                        var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
                        ViewBag.FirstName = patient.Name;
                        ViewBag.LastName = patient.Surname;
                        ViewBag.BirthDate = patient.Birthday;
                        ViewBag.Email = patient.Email;


                    }

                    using (var db = new MaindbModelDataContext())
                    {
                        var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
                        var listincoming = (from y in db.Appointments
                                          where y.PatientNo == patient.PatientNo
                                          where y.Date > DateTime.Today
                                          orderby y.Date descending
                                          select y).Take(5);

                        var TempIncoming = new List<Models.AppModel>();
                        foreach (var item in listincoming)
                        {
                            var Temp = new Models.AppModel();
                            Temp.AppNo= item.AppNo;
                            Temp.PatientNo = (Int32)item.PatientNo;
                            Temp.Date = (DateTime)item.Date;
                            Temp.Status = item.Status;
                            Temp.Description = item.Description;
                            TempIncoming.Add(Temp);


                        }
                        return View(TempIncoming);
                    }

                    using (var db = new MaindbModelDataContext())
                    {
                        var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
                        var listrecent = (from y in db.Appointments
                                          where y.PatientNo == patient.PatientNo
                                          where y.Date < DateTime.Today
                                          orderby y.Date descending
                                          select y).Take(5); 

                        var TempRecent = new List<Models.AppModel>();
                        foreach (var item in listrecent)
                        {
                            var Temp = new Models.AppModel();
                            Temp.AppNo = item.AppNo;
                            Temp.PatientNo = (Int32)item.PatientNo;
                            Temp.Date = (DateTime)item.Date;
                            Temp.Status = item.Status;
                            Temp.Description = item.Description;
                            TempRecent.Add(Temp);

                        }
                        return View(TempRecent);
                    }

                }

                else
                {
                    return RedirectToAction("RegAndLogin", "User");
                }
            }

        }
    }

这是我将两个列表传递给查看的模型

namespace DentAppSys.Models
{
    public class RecentIncoming {


            public IEnumerable<DentAppSys.Models.AppModel> RecentAppts {get; set;}
            public IEnumerable<DentAppSys.Models.AppModel> IncomingAppt {get; set;}

     }

        }

【问题讨论】:

    标签: c# asp.net-mvc list viewbag


    【解决方案1】:

    删除双重部分后错误应该消失了。

    【讨论】:

    • 您不能在一种方法中使用多个返回。返回后的代码不会被执行。在您的情况下,您必须创建一个对象,其中包含要传递给视图的两个列表,因此您只需要使用该对象返回一个。
    猜你喜欢
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2020-01-23
    • 2015-07-30
    • 1970-01-01
    • 2015-06-26
    相关资源
    最近更新 更多