[英]How to Insert a record in database using dropdownlist In asp.net mvc?
我在asp.net MVC中使用實體框架數據庫第一種方法實現了一個下拉列表?
我在 MVC 中實現了一個下拉列表,當在監視窗口中進行 IM 調試時,我插入的記錄顯示但未插入到數據庫中,這是一個問題嗎??
數據庫字段名稱:
tbl_product
tbl_product.cs
// <auto-generated>
// </auto-generated>
public partial class tbl_product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public string ProductList { get; set; }
public IEnumerable<SelectListItem> ProductLists { get; set; }
}
家庭控制器.cs
ProductEntities prodb = new ProductEntities();
public ActionResult Index()
{
return View(prodb.tbl_product.ToList());
}
public ActionResult Prodlist()
{
var ProductLists = GetallProductList();
var model = new tbl_product();
model.ProductLists = GetSelectListItems(ProductLists);
return View(model);
}
[HttpPost]
public ActionResult Prodlist(tbl_product product)
{
var ProductLists = GetallProductList();
product.ProductLists = GetSelectListItems(ProductLists);
if (ModelState.IsValid)
{
prodb.tbl_product.Add(product);
return RedirectToAction("Index");
}
return View("Prodlist", product);
}
private IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<string> elements)
{
var selectList = new List<SelectListItem>();
foreach (var element in elements)
{
selectList.Add(new SelectListItem
{
Value = element,
Text = element
});
}
return selectList;
}
private IEnumerable<string> GetallProductList()
{
return new List<string>
{
"FRIDGE",
"WASHING MACHINE",
"A.C",
};
}
}
看法:
產品列表.cshtml
<div class="form-group">
@Html.LabelFor(model => model.ProductName, htmlAttributes: new { @class = "control-label col-md-2" })
<div>
@Html.EditorFor(model => model.ProductName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ProductName, "", new { @class = "text-danger" })
</div>
</div>
//product list
<div class="form-group">
@Html.LabelFor(model => model.ProductList, htmlAttributes: new { @class = "control-label col-md-2" })
<div>
@Html.DropDownListFor(model => model.ProductList,Model.ProductLists,"Please Select Your Products:", new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ProductList, "", new { @class = "text-danger" })
</div>
</div>
Model1.Context.cs
// <auto-generated>
// </auto-generated>
public partial class ProductEntities : DbContext
{
public ProductEntities()
: base("name=ProductEntities")
{
}
public virtual DbSet<tbl_product> tbl_product { get; set; }
}
索引.cshtml
@model IEnumerable<DropdownInsertMvc.Models.tbl_product>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.ProductName)
</th>
<th>
@Html.DisplayNameFor(model => model.ProductList)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ProductName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProductList)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ProductID }) |
@Html.ActionLink("Details", "Details", new { id=item.ProductID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ProductID })
</td>
</tr>
}
</table>
當我在觀察窗口中調試時:
記錄沒有插入數據庫??
在prodb.tbl_product.Add(product);
之后你錯過了prodb.SaveChanges()
prodb.tbl_product.Add(product);
在Prodlist
方法中。
有關SaveChanges()
更多信息,您可以點擊此鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.