English 中文(简体)
MVC3 的简单下垂列表
原标题:Simple DropDownList in MVC3

我的第一个 MVC3 应用程序工作。 我有一个简单的视图, 有两个对象( 对象 A, 对象 B ) 。 对象 B 是可选的 。 我创建了一个包含两个对象的模型, 并让主计长将数据回传到视图中 。

I m trying to put in a simple DropDownList for the user to decide whether they want to enter data for object B. The dropdown list is simple - two values "Yes" and "No".
Ex: Continue with Part "B"?
[Yes]
[No]

视图中, 用户填写对象 A 的所有窗体项目。 然后, 他们可以选择填入对象 B 的项目。 我希望他们选择“ 是 ”, 如果他们想这样做( 我使用 Jquery 在当时显示更多页面 ) 。

我的问题:我该如何制作一个简单的下调列表(甚至一个基本的 HTML 输入类型= “ 选择 ” )?

In my Controller, I want to do the following:
* Do stuff for object A
* Check to see if they selected Yes
* Do stuff for object B

像是/ 不下调这样的简单东西是否需要进入模型? 它没有输入任何东西 - 它只是由“ 视图” 中的用户做出的决定。 我知道必须有一个简单的方式来做这个( ViewBag?) 但我是新人,显然已经迷失了方向。

TL; DR - 我如何在主计长可以访问的视图上创建简单的下调列表?

最佳回答

从 HTTPPOST 视图中获取您对象的值的缩略图规则是命名输入控件 ID 和名称属性与 Models 属性名称相同。 这样做的一个简单方法是使用 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; }
    }

在您的视图中 :

@Html.DropDownListFor(m => Model.Continue, Model.ContinueOptions)

在你的主计长中:

[HttpPost]
public ActionResult Edit(Model model)
{
    bool continueOn = model.Continue;   

}
问题回答

是的, 您的下降应该是模型的一部分, 否则控制器将无法从用户那里得到回答 check 看看他们是否选择了是

public SomeViewModel
{
  public ObjectA A { get; set; }
  public ObjectB B { get; set; }
  public bool? IsBSelected { get; set; }
}

我通常使用 bool? 仅仅因为我想知道用户是否选中了该用户,但使用 bool 也会很好。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...