我想从数据库的下拉框中存储文本值,但我不能这样做。
我的代码如下:
[HttpPost]
public ActionResult AddMachine(FormCollection fc, HttpPostedFileBase file) {
admachinecat();
//admachinesubcat();
ad.machinetype = fc["Drop"];
ad.machinesubtype = fc["sDrop"];
ad.machinesub_subtype = fc["subDrop"];
ad.modelnum = fc["modelnum"];
ad.menufacture = fc["Manufacturer"];
ad.manufacturecat = fc["modelcat"];
ad.File = file;
ad.productspec = fc["product_speci"];
ad.productdetail = fc["Editor1"];
if (ModelState.IsValid) {
int result = dab.admachine(ad);
ViewData["result"] = result;
ModelState.Clear();
return View();
} else {
ModelState.AddModelError("", "error in saving data");
return View();
}
}
public void admachinecat() {
DataSet ds = dab.subcatdropdown();
ViewBag.menulist = ds.Tables[0];
List < SelectListItem > branchitems = new List < SelectListItem > ();
branchitems.Add(new SelectListItem {
Text = "---select---",
Value = "0",
});
foreach(DataRow dr in ViewBag.menulist.Rows) {
branchitems.Add(new SelectListItem {
Text = @dr["Category_Name"].ToString(), Value = @dr["Category_Id"].ToString()
});
}
ViewBag.Drop = branchitems;
}
在数据库访问层中:
public DataSet subcatdropdown()
{
SqlCommand cmd = new SqlCommand("select Category_Id,Category_Name from Category", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
在HTML页面中:
<div class="col-sm-6">@Html.DropDownList("Drop")</div>
答案 0 :(得分:0)
而不是表单集合,如果你使用model更好。任何人都可以使用隐藏的帮助器来完成它。 尝试使用jquery来获取下面的文本..
脚本:
<script type="text/javascript">
$(document).ready(function () {
$('#SelectedCategoryId').change(function () {
var SelectedCategory = $('#SelectedCategoryId option:selected').text();
$('#hiddenStateId').val(SelectedCategory);
});
});
</script>
Html:
@Html.DropDownList("Drop",new { id = "SelectedCategoryId")
@Html.Hidden("SelectedCategory", new { id = "hiddenStateId" })
现在使用fc
在控制器中调用SelectedCategoryad.category = fc["SelectedCategory"];