我有一個代碼,我嘗試將模型中的資料系結到 DropDownListFor,它在執行時成功地在視圖中顯示下拉串列,但它始終不回傳選定的值,除了 0。我已經檢查并嘗試了此處發布的許多解決方案,但似乎沒有奏效。
AdminController.cs(用于 Create.cshtml 視圖和 ProductSave() 表單操作的 Create() 操作)
public ActionResult Create()
{
var categoryList = _context.Categories.ToList();
var viewModel = new CreateViewModel
{
Categories = categoryList,
};
return View(viewModel);
}
[HttpPost]
public ActionResult ProductSave(CreateViewModel viewModel)
{
return Content(viewModel.SelectedId.ToString());
}
創建視圖模型.cs
public class CreateViewModel
{
public IEnumerable<Category> Categories { get; set; }
public int SelectedId { get; set; }
public Product Product { get; set; }
}
Create.cshtml(我只在此處包含了 View 的必要欄位)
@using (Html.BeginForm("ProductSave", "Admin",null,FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="default-form-wrap style-2">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Product.Category_Id, new { @class = "control-label"})
<div class="nice-select single-select">
@Html.DropDownListFor(model => model.SelectedId,new SelectList(Model.Categories,"Id","CategoryName"),"Select Category", new { @class = "form-control" } )
@Html.ValidationMessageFor(model => model.Product.Category_Id, "", new { @class = "text-danger" })
</div>
</div>
<div class="row text-center">
<div class="col">
<input type="submit" value="Create" class="btn btn-base" />
</div>
</div>
</div>
選擇時,一個類別值相應地更改 截圖
在點擊提交按鈕后,我嘗試在表單操作方法中回傳 Content() 以查看系結視圖模型的輸出
return Content(viewModel.SelectedId.ToString());
但這是我得到的 截圖
我只想獲得與所選串列項對應的輸出。
uj5u.com熱心網友回復:
查看您的 HTML,罪魁禍首可能是:
<div class="nice-select single-select">
DropdownListFor 應該生成一個<select>具有 ID 值的元素,MVC 將決議該元素以在回程時填充模型。您的 HTML 正在生成一個<ul>.
您可以洗掉外部<div>或類定義,它應該可以作業。使“不錯的選擇”作業可能需要閱讀它是什么,并與 MVC 系結控制元件進行互動以使其與表單回發兼容。您可能需要使用一些 Javascript 等@Html.HiddenFor,當從<ul>與模型相關的隱藏輸入中選擇一個值時,會更新并可用于回發。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/313340.html
