[英]ASP.NET MVC Binding Value in View
努力從下拉列表中獲取值,然后將其傳遞到我的控制器中以進行數據庫插入。 它從下拉列表中的每個項目的簡單類開始。
public class selectListUrgencyNum
{
public string Text { get; set; }
public string Value { get; set; }
}
然后在我的視圖模型中創建這些對象的列表。
public class createViewModel
{
public Change Changevm { get; set; }
public List<RequestType> rTypes { get; set; }
public List<selectListUrgencyNum> listUrgency { get; set; }
}
最后是我的控制器,我將填充此列表以顯示在下拉列表中。
public ActionResult Create()
{
var urgNums = new List<selectListUrgencyNum>();
for(int i = 1; i < 6; i++)
{
urgNums.Add(new selectListUrgencyNum() { Text = i.ToString(), Value = i.ToString() });
}
var viewModel = new createViewModel
{
listUrgency = urgNums
};
return View(viewModel);
}
我只是使用1-5來簡化理解。
我的視圖將像這樣創建ddl。
<div class="form-group">
@Html.LabelFor(model => model.Changevm.UrgencyNum, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-2">
<select class="form-control" id="select">
<option> 1 = Least Urgent</option>
@foreach(var item in Model.listUrgency)
{
<option>@item.Text</option>
}
</select>
@*How do I grab the value of what is selected??*@
@Html.ValidationMessageFor(model => model.Changevm.UrgencyNum, "", new { @class = "text-danger" })
</div>
因此,我不確定如何獲取所選下拉選項的值,以便在我的插入內容中可以訪問它。 可能是隱藏的?
如果我將其用作隱藏物,它將看起來如何?
如果已經回答,請鏈接。
如果只想傳遞文本和值,則可以使用System.Web.Mvc中的SelectListItem
類,該類用於將項目傳遞給下拉列表。
public class CreateViewModel
{
public Change ChangeVm { get; set; }
public List<RequestType> Types { get; set; }
public List<SelectListItem> ListUrgency { get; set; }
}
在Controller Create()方法中,我們還創建了新的ChangeVm
var viewModel = new CreateViewModel()
{
ChangeVm = new Change(),
ListUrgency = urgNums
};
return View(viewModel);
在視圖上,您可以使用Html.DropDownListFor
擴展方法,該方法將用於創建具有給定項目和專有名稱的列表。
Html.BeginForm
將負責使用適當的“操作” URL和方法來創建表單。
@using (Html.BeginForm("Create", "Home", FormMethod.Post))
{
<div class="form-group">
@Html.LabelFor(model => model.ChangeVm.UrgencyNum, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-2">
@Html.DropDownListFor(model => model.ChangeVm.UrgencyNum, Model.ListUrgency, "Choose Urgency...")
@Html.ValidationMessageFor(model => model.ChangeVm.UrgencyNum, "", new { @class = "text-danger" })
</div>
<input type="submit" value="Submit"/>
</div>
}
然后,您可以在控制器中使用
[HttpPost]
public ActionResult Create(CreateViewModel vModel)
{
if(vModel?.ChangeVm?.UrgencyNum != null)
{
var chosenValue = vModel.ChangeVm.UrgencyNum;
}
return View(vModel);
}
如果一切順利,則應該在vModel.ChangeVm.UrgencyNum中選擇您的值
將name
屬性添加到您的select
。
<select class="form-control" id="select" name="selectedUrgency">
並在控制器的已發布操作中,假設我們具有Create2
操作方法。 我們可以從Request
對象檢索值。
[HttpPost]
public ActionResult Create2()
{
var value = Request["selectedUrgency"];
}
假定您給定的html具有<form>
標記,且操作url指向此操作方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.