我需要一些关于MVC的帮助,作为这个领域的新手。这是我的下拉列表代码,我只想在控制器中获取用户选择的值,以便我可以将该值传递给db中的表。这是来自.cshtml的代码
@Html.DropDownList("LogOffTime", new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "30000" },
new SelectListItem{ Text="Two", Value = "60000" },
new SelectListItem{ Text="Three", Value = "180000" }
}, "Select Time")
控制器:
public ActionResult Index()
{How to get the value from drop down list}
我只需要知道如何访问控制器中的值,即30000/60000等。如果用户没有选择任何内容,还需要检查是否会传递任何值。请纠正我。如果我的代码有任何问题。谢谢!
答案 0 :(得分:1)
创建模型
public class dropdown {
public int value {get;set;}
}
您需要在此下拉列表中添加使用,添加提交按钮,该按钮将向控制器发送帖子 -
@using(Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.DropDownList(m=>m.value,"LogOffTime", new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "30000" },
new SelectListItem{ Text="Two", Value = "60000" },
new SelectListItem{ Text="Three", Value = "180000" }
}, "Select Time")
<input type="submit" value="Submit" />
}
在您的控制器中
public ActionResult AddItem(dropdown value) // you will get the value here
{
// do something
}
答案 1 :(得分:1)
首先你需要一个模型..假设你的模型中有Id列..
public ActionResult Index()
{
ViewBag.MyList= new SelectList(db.MyTable.ToList(), "Id", "Name");
return View();
}
在剃刀中
@Html.DropDownListFor(m => m.Id, ViewBag.MyList as SelectList, new { @class = "form-control" })
POST控制器方法
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Index(MyModel model)
{
int getmyid=model.Id;
}
答案 2 :(得分:1)
我从我正在知道的工作中得到了这个例子。我希望它可以提供帮助
查看或DropDownList
:
@using(Html.BeginForm("getSelectedValue", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.DropDownList("LogOffTime", new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "30000" },
new SelectListItem{ Text="Two", Value = "60000" },
new SelectListItem{ Text="Three", Value = "180000" }
}, "Select Time")
<input type="submit" value="Submit" />
}
HomeController中:
[HttpPost]
public ActionResult getSelectedValue()
{
var selectedValue = Request.Form["LogOffTime"].ToString(); //this will get selected value
}
答案 3 :(得分:0)
非常简单你只需要理解一件事,对于dropdownlist控件,视图表单只会将选定的值以及dropdownlist控件的名称作为控制器方法的键值对发布。所以你可以简单地写下面来获得价值
查看代码:
@Html.DropDownList("LogOffTime", new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "30000" },
new SelectListItem{ Text="Two", Value = "60000" },
new SelectListItem{ Text="Three", Value = "180000" }
}, "Select Time")
控制器代码:
public ActionResult Index( string LogOffTime) //LogOffTime is name of dropdownlist controll
{
//some logic
}
注意:您应该将ddcontrol放在form标签中,并使用submit发布数据,或者也可以使用jquery的change事件执行相同的操作。
希望以上信息有用
由于
KARTHIK
答案 4 :(得分:0)
SelectLists是人们(我)要掌握的更具挑战性的概念之一。造成混淆的部分原因是,当我们设置“文本”时,我们直观地认为“值”是一个数字(int或“ Id”)。不是。 “值”作为字符串从视图传递到控制器。然后,将表单提交给控制器时,您将需要解析“值”并将该值转换为int。见下文:
您的视图模型应具有“字符串”类型的属性,该属性将保存选定的值。
ViewModel
@using(Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.DropDownListFor(m=>m.selectedvalue, new List<SelectListItem>
{
new SelectListItem{ Text="One", Value = "30000" },
new SelectListItem{ Text="Two", Value = "60000" },
new SelectListItem{ Text="Three", Value = "180000" }
}, "Select Time")
<input type="submit" value="Submit" />
}
查看
public ActionResult Index(string selectedValue)
{
int value = 0;
bool valueIsInt = Int32.TryParse(selectedValue, out value); //this returns true if selectedValue can be converted to int and outputs the int as "value"
if (valueIsInt)
{
selectedvalue = value // if value is an int, set it to selectedvalue
}
//otherwise do something else
}
控制器
Sub Inventory_format()Dim cell As Range
我知道这有点晚了,但是希望这可以帮助像我一样苦于选择列表的人。