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。
我怎样才能做到这一点?
您需要
围绕控件设置一个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" />
}