Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在控制器的[HttpPost]中获取@DropDownListFor的值_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 如何在控制器的[HttpPost]中获取@DropDownListFor的值

C# 如何在控制器的[HttpPost]中获取@DropDownListFor的值,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我无法向控制器获取@Html.DropDownListFor的值。 我是MVC新手。 我在这里添加代码 型号 public IEnumerable<System.Web.Mvc.SelectListItem> CatID { get; set; } 查看 //(在视图中,数据从数据库中正确加载) 控制器(post后返回控制器) 我只是在寻找一种方法,从视图中获取@Html.DropDownListFor selected的值到控制器 我得到了上述问题的解决方案 型号(Motor

我无法向控制器获取@Html.DropDownListFor的值。 我是MVC新手。 我在这里添加代码

型号

 public IEnumerable<System.Web.Mvc.SelectListItem> CatID { get; set; }
查看

//(在视图中,数据从数据库中正确加载)

控制器(post后返回控制器)

我只是在寻找一种方法,从视图中获取@Html.DropDownListFor selected的值到控制器


我得到了上述问题的解决方案

型号(MotorInput.cs)

控制器(UserController.cs)//从数据库将视图页面设置加载到viewBag

 @Html.DropDownListFor(m => m.CatID, ViewBag.CatID as SelectList, new { @class = "form-control" })
public ActionResult Motors()
        {
            this.ViewBag.CatID = new SelectList(this.db1.motors, "id", "cat");
            return View();
        }
查看(Motors.cshtml)


这有助于从视图中获取控制器的下拉值。

我假设
CatID
属性在
MotorInput
类中,对吗?您不能将
绑定到复杂对象的集合(这就是
CatID
的含义)。您需要一个属性,比如
int-SelectedCategory
来绑定。请查看我的post@Stephen所以我应该在我的模型和控制器中做些什么改变。发现这一点很难理解。请查看中的代码。以及编辑数据,因此始终使用视图模型-绑定到的属性和
选择列表不能具有相同的名称-请参阅
[HttpPost]

    public ActionResult Motors(MotorInput collection)

         {
            MotorInput obj = new MotorInput
               {
               CatID = collection.CatID
               }; 
              return View(collection);
         }
public int CatID { get; set; }
public ActionResult Motors()
        {
            this.ViewBag.CatID = new SelectList(this.db1.motors, "id", "cat");
            return View();
        }
@model BLL.Models.MotorInput
@{
    ViewBag.Title = "Motors";
    Layout = "~/Views/Shared/_UserLayout.cshtml";
}

    @using (Html.BeginForm())
    {
         @Html.DropDownList("CatID", (SelectList)ViewData["CatID"], "-- Select Category --", new { @class = "form-control" })


     <input type="submit" value="Create">
    }
[HttpPost]
public ActionResult Motors(MotorInput collection)// MotorInput is the class where CatId is set as int.(Model class)
           {
             MotorInput obj = new MotorInput
                       {
                           CatID = collection.CatID,
                       };
                    return View(collection);
          }