【问题标题】:Pass Dropdownlistfor selected value to controller on selected item changed将所选值的下拉列表传递给所选项目上的控制器已更改
【发布时间】:2017-06-10 05:45:00
【问题描述】:

尝试将在本例中为 studentid 的选定值传递给 BeginForm。

查看

@using (Html.BeginForm("DDSubmit", "Home",new { id=Model.studentID}, FormMethod.Post))
{
    @Html.DropDownListFor(m => m.studentID, Model.DDList, "Please Select",new { onchange = "this.form.submit();" })
}

控制器动作

 public ActionResult DDSubmit(int id)
    {
        var info = (from r in entity.STUDENTS where r.Student_Id == id select r).ToList();
        return View(info);            
    }

型号

public class DDModel
{
    public List<SelectListItem> DDList { get; set; }
    public int studentID { get; set; }
    public string studentName { get; set; }
}

【问题讨论】:

  • 那么你的问题是什么?如果您的 POST 方法有模型的参数,那么它的 studentID 属性将与所选选项的值绑定
  • 无论我从下拉列表中选择什么项目,我的操作方法总是为零
  • 那么它可能是一个字段而不是一个属性。您还没有显示任何相关代码(您的模型或控制器方法!)
  • 我已经添加了模型和控制器动作
  • 这毫无意义。您已经展示了一个 GET 方法,该方法返回一个集合和一个视图,该视图具有一个显然不是集合的模型,因此代码甚至无法编译。而且您还没有显示 POST 方法(并且不相关,但删除了您的BeginForm() 中无意义的new { id=Model.studentID}

标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-3


【解决方案1】:

终于明白了

查看

 @using (Html.BeginForm("DDSubmit", "Home", FormMethod.Post))
{
    @Html.DropDownListFor(m => m.studentID, Model.DDList, "Please Select",new { onchange = "this.form.submit();" })
}

动作

public ActionResult DDSubmit(DDModel ddlist)
    {
        int id = ddlist.studentID;
        var info = (from r in entity.STUDENTS where r.Student_Id == id select r).ToList();
        return View(info);            
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多