我嘗試創建下拉串列。但這給了我錯誤。第一個下拉選單正在作業,我嘗試使用簡單串列。但是在我用值和文本創建的第二個下拉串列中它給了我錯誤。
我采用代碼優先方法并在模型類中創建了布爾型別屬性。我希望是或否表單用戶通過下拉串列并將其對應的值存盤在資料庫中,是的值為 1,否值為 0。所以我嘗試SelectListItem
將值和文本傳遞給 View。但它不起作用:
這是我的模型類:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Edu_Form.Models
{
public class Hiring_Edu_Info
{
[Key]
public int Id { get; set; }
public String Level { get; set; }
public bool IsDegreeCompleted { get; set; }
}
}
這是我的控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Edu_Form.Controllers
{
public class HiringController : Controller
{
// GET: Hiring
public ActionResult Index()
{
List<SelectListItem> DegreeCompleted = new List<SelectListItem>() {
new SelectListItem {
Text = "Yes", Value = "1"
},
new SelectListItem {
Text = "No", Value = "0"
},
};
ViewBag.LevelList = DegreeCompleted;
return View();
}
}
這是我的看法:
@model Edu_Form.Models.VMHiring_edu_Info
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-group">
@Html.LabelFor(model => model.IsDegreeCompleted, htmlAttributes: new { @class = "control-label " })
<div class="">
@Html.DropDownListFor(model => model.IsDegreeCompleted, new SelectList(ViewBag.DegreeCompleted, "Value", "Text"), "-- Select --", new { @class = "form-control" })
@* @Html.EditorFor(model => model.IsDegreeCompleted)*@
@Html.ValidationMessageFor(model => model.IsDegreeCompleted, "", new { @class = "text-danger" })
</div>
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
此行會引發錯誤:
@Html.DropDownListFor(model => model.IsDegreeCompleted, new SelectList(ViewBag.DegreeCompleted, "Value", "Text"), "-- Select --", new { @class = "form-control" })
錯誤詳情:
System.ArgumentNullException
HResult=0x80004003
訊息=值不能為空。
引數名稱:items
Source=System.Web.Mvc堆疊跟蹤:
在 C:\Users\Shaheer_Ahmed\Desktop 中的 ASP._Page_Views_NUML_Hiring_Index_cshtml.Execute()處的 System.Web.Mvc.MultiSelectList..ctor(IEnumerable 專案、字串 dataValueField、字串 dataTextField、字串 dataGroupField、IEnumerable selectedValues、IEnumerable disabledValues、IEnumerable disabledGroups)\HRM_NUML\Edu_Form\Edu_Form\Views\NUML_Hiring\Index.cshtml:
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
處 System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
處 System.Web.WebPages.StartPage 處的第 71 行。 RunPage()
在 System.Web.WebPages.StartPage.ExecutePageHierarchy()
在 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
在 System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
在 System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context )
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1 過濾器, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
uj5u.com熱心網友回復:
在您的控制器下構建 SelectList 并通過 viewbag 傳遞給視圖
var OType = new List<SelectListItem>();
OType.Add(new SelectListItem() { Text = "Yes", Value = "0" });
OType.Add(new SelectListItem() { Text = "No", Value = "1" });
SelectList DegreeCompleted = new SelectList(OType, "Value", "Text");
ViewBag.DegreeCompleted = DegreeCompleted ;
在視圖下,你可以做這樣的事情。
@Html.DropDownListFor(model => model.IsDegreeCompleted, (SelectList)ViewBag.DegreeCompleted, "-- Select --", new { @class = "form-control" })
如果你想為 DropDownList 添加價值,你可以這樣做
@Html.DropDownListFor(model => model.IsDegreeCompleted, (SelectList)ViewBag.DegreeCompleted, "-- Select --", new { @class = "form-control", @Value = @item.value })
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/508219.html
標籤:网 asp.net-mvc 落下 html 助手
上一篇:如何在下拉串列中制作可搜索框?