视图中的类ID到其他类/视图MVC 4

时间:2016-02-01 21:16:00

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

所以我正在使用MVC 4,我有一个问题。我有两个课程,安排和模拟(它模拟学生进入教室)。我有一个视图,它给出了链接旁边存在的所有日程表来模拟入口(它是另一个视图,另一个类)。我想将该人选择的时间表中的id传递给Simulation类中的属性。

课堂模拟:

    namespace GestorSalas.Models
{
    public class Simulation
    {
        public virtual int SimulationId { get; set; }
        public virtual int ScheduleId { get; set; }

        public virtual string Utilizador { get; set; }

        [DisplayName("Tipo de Utilizador")]
        public virtual string TipoUtilizador { get; set; }

        public virtual int Codigo { get; set; }

        public virtual string Hora { get; set; }

        public virtual bool Entrar { get; set; }

    }

班级时间表:

    namespace GestorSalas.Models
{
    public class Schedule
    {
        public virtual int ScheduleId { get; set; }
        public virtual int DisciplinaId { get; set; }
        public virtual int SalaId { get; set; }

        [Required]
        public virtual int Dia { get; set; }

        [Required]
        [DisplayName("Hora de Entrada")]
        public virtual string HoraEntrada { get; set; }

        [Required]
        [DisplayName("Hora de Saida")]
        public virtual string HoraSaida { get; set; }

        public virtual Disciplina Disciplina { get; set; }
        public virtual Sala Sala { get; set; }
    }

这是视图:(用户看到的内容) enter image description here

(Entrar na sala =链接到模拟创建视图,在此图像中是日程索引视图)。 我想从计划中传递id以便出现在模拟表单中(或者在创建之后出现在表格中,就像我们点击详细信息或编辑时那样,它需要用户ID,但我想要计划ID)。 这是“Entrar em sala”链接中的代码:

@Html.ActionLink("Entrar em sala", "Create", "Simulation", new {id = item.HorarioId }, null) 

但它不起作用。关于我该怎么做的任何想法?

编辑:控制器:

模拟: 创造     //             // GET:/ Simulacao / Create

        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Simulacao/Create

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(Simulation simulation)
        {
            if (ModelState.IsValid)
            {
                db.Simulacaos.Add(simulation);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(simulation);
        }

时间表就是这里使用的索引:

 public ActionResult Index()
        {
            var schedules= db.Schedules.Include(h => h.Disciplina).Include(h => h.Sala);
            return View(schedules.ToList());
        }

1 个答案:

答案 0 :(得分:1)

您的create方法应接受id作为参数并根据需要使用它。

public ActionResult Create(int id)
{
  // Id has the scheduleId
  // to do  : Do something with the Id passed in and return something

}

在索引视图中,您需要将scheduleId作为路由参数Id

的值传递
@model List<Schedule>
<h2>Simulator</h2>
<table>
 <tr><th>HoraEntrada </th><th>Dia </th><th></th></tr>
 @foreach(var item in Model)
 {
   <tr>
    <td>@item.HoraSaida</td>
    <td>@item.Dia</td>
    <td>@Html.ActionLink("Entrar em sala", "Create", "Simulation",
                                                        new {@id = item.ScheduleId}, null)
     </td>
   </tr>           
 }
</table>