C# MVC3中的简单下拉列表
正在开发我的第一个MVC3应用程序。我有一个简单的视图,它有两个对象(对象a,对象B)。对象B是可选的。我已经创建了一个包含这两个对象的模型,并且让控制器正常工作,将数据来回传递到视图 我试图在一个简单的下拉列表中为用户决定是否要为对象B输入数据。下拉列表很简单-两个值“是”和“否”C# MVC3中的简单下拉列表,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,正在开发我的第一个MVC3应用程序。我有一个简单的视图,它有两个对象(对象a,对象B)。对象B是可选的。我已经创建了一个包含这两个对象的模型,并且让控制器正常工作,将数据来回传递到视图 我试图在一个简单的下拉列表中为用户决定是否要为对象B输入数据。下拉列表很简单-两个值“是”和“否” 例:继续“B”部分“? [是] [否] 在视图中,用户填写对象A的所有表单项。然后,他们可以选择填写对象B的项。如果他们想这样做,我希望他们选择“是”(当时我使用Jquery显示更多页面) 我的问题:我如何制作一个
例:继续“B”部分“?
[是]
[否] 在视图中,用户填写对象A的所有表单项。然后,他们可以选择填写对象B的项。如果他们想这样做,我希望他们选择“是”(当时我使用Jquery显示更多页面) 我的问题:我如何制作一个简单的下拉列表(甚至是一个基本的HTML输入type=“select”…),在他们提交表单后,我可以在控制器中访问它 在我的控制器中,我要执行以下操作:
*为对象A做一些事情
*检查他们是否选择了“是”
*为对象B做一些事情
像是/否这样简单的下拉列表是否需要进入模型?它没有键入任何内容-它只是用户在视图中做出的决定。我知道必须有一个简单的方法来做这件事(ViewBag?),但我是新手,显然迷路了
TL;DR-如何在我可以在控制器中访问的视图上创建简单的下拉列表?是您的下拉列表应该是模型的一部分,否则控制器将无法从用户那里获得答案,以检查他们是否选择了是
我通常使用
bool?
仅仅是因为我想知道用户选择的是on还是其他,但是使用bool
也可以。从HTTPPOST的视图中获取对象值的经验法则是将输入控件id和属性命名为与模型属性名称相同的名称。一个简单的方法是使用Html助手
public class Model
{
public Model()
{
List<SelectListItem> options = new List<SelectListItem>();
options.Add(new SelectListItem { Value = true.ToString(), Text = "yes" });
options.Add(new SelectListItem { Value = false.ToString(), Text = "no" });
ContinueOptions = options;
}
public bool Continue { get; set; }
public IEnumerable<SelectListItem> ContinueOptions { get; set; }
}
在控制器中:
[HttpPost]
public ActionResult Edit(Model model)
{
bool continueOn = model.Continue;
}
好的-我可以使用Request.Form[“ddlChoice”];在控制器中,这将起作用。这是最好的方法吗?请看下面我的答案,我觉得如果使用Request.Form属性而不是使用强类型类,那么代码膨胀会更多,更容易出错。如果您觉得下面的答案有帮助,请将其标记为答案,祝您有一个好答案!
@Html.DropDownListFor(m => Model.Continue, Model.ContinueOptions)
[HttpPost]
public ActionResult Edit(Model model)
{
bool continueOn = model.Continue;
}