我有一个MVC视图,其中登录用户选择课程(我有下拉列表)并单击添加按钮。我的控制器获取登录人的ID,然后执行添加。我无法弄清楚如何将所选的courseId传递给控制器中的post方法。
我有类似的东西:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChooseCoursePreferences()
{
ViewBag.CourseId = new SelectList(db.Courses, "CourseId", "Name");
int personid = repository.GetLoggedInPersonId();
int courseid = ???;
repository.AddCoursePreferences(personid, courseid);
return View();
}
视图有:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table class="table">
<tr>
<td>PLease choose a course:</td>
<td>@Html.DropDownList("CourseId", String.Empty)</td>
@Html.ActionLink("Add", "ChooseCoursePreferences", new { ??? })
<tr></tr>
</table>
}
此外,如果我想使用按钮作为点击该怎么办。
我尝试了这个:但是我又如何获得我选择的courseId? 添加课程
谢谢!
答案 0 :(得分:1)
我完全同意revdrjrr,熟悉mvc,你所做的是非常基本的。但我会在这里帮助你。
//action results
[HttpGet]
public ActionResult ChooseCoursePreferences()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChooseCoursePreferences(int CourseId)
{
ViewBag.CourseId = new SelectList(db.Courses, "CourseId", "Name");
int personid = repository.GetLoggedInPersonId();
int courseid = CourseId;
repository.AddCoursePreferences(personid, courseid);
return View();
}
查看
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table class="table">
<tr>
<td>PLease choose a course:</td>
//i will need more information to be able to help you out here
//I am not quite sure where this information should come from
<td>@Html.DropDownList("CourseId", String.Empty)</td>
<input type="submit"/>
<tr></tr>
</table>
}
答案 1 :(得分:0)
我认为你所要求的是非常基本的。我将从阅读一些教程开始。有很多背景信息,你会发现有用。我最近学习了.NET,并发现微软的前几个教程是一个很好的入门方法。 http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started