您好我有MVC剃刀應用如電子目錄和我用下拉列表以從DB綁定數據,但器DD1綁定相同的值從DB就好像我有三個類別「x,Y,Z」DDL返回類似值「Z,Z,Z」,因爲它有最後一個值「y」。當用戶從DDL中選擇項目時,我也嘗試將選定的值「ID」插入到數據庫中,但我不能,並且它返回錯誤的選定值。如何從DDL由MVC剃刀插入選定的值DB
public class CategoryController : Controller
{
private AndriodContext db = new AndriodContext();
List<SelectListItem> items = new List<SelectListItem>();
List<string> category = new List<string>();
SelectListItem s = new SelectListItem();
//
// GET: /Category/
public ActionResult Index()
{
var x = db.Categories.Where(y => y.Active == true).ToList();
return View(x);
}
public ActionResult Create()
{
var data = db.Categories.ToList().Distinct();
List<string> x = new List<string>();
foreach (var t in data)
{
s.Text = t.Name;
s.Value = t.Cat_ID.ToString();
items.Add(s);
}
ViewBag.Parent = items;
return View();
}
//
// POST: /Category/Create
[HttpPost]
public ActionResult Create(Category category, IEnumerable<HttpPostedFileBase> files)
{
var data = db.Categories.ToList().Distinct();
List<SelectListItem> items = new List<SelectListItem>();
foreach (var t in data)
{
SelectListItem s = new SelectListItem();
s.Text = t.Name;
s.Value = t.Cat_ID.ToString();
items.Add(s);
if (s.Selected)
{ category.Parent_ID = int.Parse(s.Value); }
}
db.Categories.Add(category);
db.SaveChanges();
return RedirectToAction("Index");
}
}
@using(Html.BeginForm( 「創建」, 「類別」,FormMethod.Post,新的{ENCTYPE = 「多部分/格式數據」, @data_ajax = 「假」})) { @ Html.ValidationSummary(真)
<fieldset>
<legend></legend>
<div class="editor-field create-Bt3">
@Html.DropDownList("Parent", new SelectList(ViewBag.Parent, "Value", "Text"), "- Select Parent -")
</div>
<div>
<p class="create-Bt ">
<input type="submit" value="Create" />
</p>
</div>
<br />
<br />
<div>
@Html.ActionLink("Back to List", "Index")
</div>
</fieldset>
}
我有這個錯誤「輸入字符串的格式不正確。」這裏category.Parent_ID = int.Parse(hdnParent); – Egydeveloper 2013-03-11 09:46:21
thx,它的工作,但我有新的問題,因爲DDL只返回最後一個值,因爲它沒有返回所有值 – Egydeveloper 2013-03-11 09:53:12
你能發佈完整的代碼片段嗎?在這種情況下,我認爲hdnParent的價值變爲空。 您需要將表單標籤內的隱藏字段。 否則,您可以通過HttpPost方法中的Request [「hdnParent」]獲取值。 – 2013-03-11 09:56:54