ASP.net MVC 4 如何使用下拉菜单

本文关键字:何使用 下拉菜单 net MVC ASP | 更新日期: 2023-09-27 18:30:54

我是MVC 4(来自网络表单 ASP.net 新手),所以我对如何执行某种类型的功能有点困惑。

我使用 创建了一个下拉框

<select>
@for(var item in ViewBag.Items)
{
    <option value="@item.ID">@item.name</option>
}
</select>

假设我创建了一个"添加"按钮。

<input type="submit" value="Add" />

我有一个表,我们称该表为"cars",其中有一列名为"CarID"。

我想发生的是点击添加按钮,新行将添加到汽车表中,其中包含用户在下拉框中选择的汽车 ID。

我怎样才能做到这一点?

ASP.net MVC 4 如何使用下拉菜单

您需要

围绕控件设置一个form以及select上的一些 html 属性。

<form action="/Cars/Add" method="post">
   <select name="carId">
     @for(var item in ViewBag.Items)
     {
       <option value="@item.ID">@item.name</option>
     }
   </select>
   <input type="submit" value="Add" />
</form>

现在,创建一个名为 Cars 的新控制器,并添加操作Add

public class CarsController : Controller
{
    public ActionResult Add(int carId)
    {
        // TODO : Validate the carId
        // TODO : Do the DB stuff to insert the car as you would in winforms
        return View("AddComplete"); // or whatever view
    }
}

上面的示例生成一个表单,该表单将提交一个名为 carId 的变量来Add操作。 然后,操作处理程序将验证并将其添加到数据库中。

您必须记住的是,对于 HTML 没有状态,即每次加载页面时,所有相关内容都必须传入或加载。

这些是 c# MVC 开发的一些基本概念,因此可能值得花时间阅读基础知识:-

http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4。

http://www.asp.net/mvc/tutorials

在 MVC 中,更好的决定是将所有逻辑从视图移动到控制器:

如果您有汽车模型:

public class car
{
    public string carname {get;set;}
    public int carID {get; set;}
}

您可以在控制器操作方法中创建SelectList

public ActionResult CreateNewRow()
{
    //**create selectList in controller
    var carlist = new List<SelectListItem>();
    var cars = from n in db.Cars
              select new SelectListItem
        {
             Text = n.carname,
             Value = n.CarID.ToString()
        };
    foreach (var item in cars)
    carlist.Add(item);
    ViewBag.cars = cars
    return View();
}

比起在您的视图中,您只需要以下内容:

@using(Html.BeginForm())
{
    @Html.DropDownListFor(model => model.carID, (SelectList)ViewBag.cars)
    <input type="submit" value="ok" />
}