修改新建

时间:2018-07-10 03:07:54

标签: asp.net asp.net-mvc

我有一个显示课程列表的视图。我想将用户链接到创建新视图。创建新视图应针对用户选择的特定课程。但是现在,课程显示在下拉列表中。我不希望用户再次选择课程。

我有一个Index视图,其中列出了课程(例如历史记录,数学..)。选择课程后,它将转到创建新视图。我想修改视图,以便用户填写特定课程的应用程序。


@Html.ActionLink("Choose", "ChooseCorse", "FillCourse", new { id = item.idCourse }, null)

现在,我正在使用ActionLink将用户链接到创建新视图并获取课程ID,但这是我遇到的问题。如何显示所选课程并确保将其保存在数据库中?

[HttpGet]
public ActionResult ChooseCourse(int? id)
 {
   //For the dropdow list
   ViewBag.idCourse = new SelectList(db.tbCourses,"idCourse","Name",fillCourse.idCourse);
   return View();
 }

  [HttpPost]
  public ActionResult ChooseCourse (tbFillCourse fillCourse)
    {
       if(!ModelState.IsValid)
        {
           return View();
        }

        else
         {
            db.tbFillCourses.Add(fillCourse);
            db.SaveChanges();
            return RedirectToAction("Index");
          }

      }

这是我第一次使用该网站,因此,如果我需要提供更多信息或做错了什么,请纠正我。

1 个答案:

答案 0 :(得分:-1)

这行吗?

[HttpGet]
public ActionResult ChooseCourse(int? id)
 {
   //For the dropdown list
   ViewBag.idCourse = new SelectList(db.tbCourses,"idCourse","Name",id);
   return View();
 }

我不知道参数tbFillCourse fillCourse是做什么的,但是;

  1. 您没有传递任何东西,因此它实际上应该失败,因为据我所知,它不是可选参数
  2. 填充下拉列表时,您将其用作默认值

似乎HttpGet所做的一切都是填充一个下拉菜单-根本不返回视图。

我建议您使用断点来逐步检查参数值