从按钮单击将参数传递给方法

时间:2014-02-12 22:17:07

标签: c# asp.net-mvc

我有一个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? 添加课程

谢谢!

2 个答案:

答案 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