了解填充下拉列表

时间:2014-09-12 05:49:51

标签: asp.net-mvc asp.net-mvc-4 drop-down-menu

我已经创建了一个类,并且基于这个类iam填充下拉列表而没有问题。但是在视野中我并不清楚逻辑。请查看最后一行代码,我有两个问题。

  1. 我无法理解x => x.Student.StudentId的第一个参数,这里有什么用来获取StudentId属性?

  2. 其次在最后一行我写了第二个参数(new SelectList(Model.StudentList,"StudentId","FirstName"))。在这里,我无法理解“模型”这个词:它是关键字还是什么?我们可以使用其他词而不是模型吗?

    public class StudentManager
    {
        public StudentManager()
        {
    
            Student = new Student();
            StudentList = new List<Student>();
        }
    
        public Student Student { get; set; }
        public List<Student> StudentList { get; set; }
    
    }
    
    @model MvcAppLearn.Models.StudentManager
    
    @{
        ViewBag.Title = "PopulateDrop";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    <h2>PopulateDrop</h2>
    
    @Html.DropDownListFor(x=>x.Student.StudentId, new SelectList(Model.StudentList,"StudentId","FirstName"), "--Select--")
    

2 个答案:

答案 0 :(得分:0)

第一个问题的回答: -

当您将数据发布到帖子控制器时,(x => x.Student.StudentId)所选的下拉值将显示在StudentId属性中。

第二个问题的回答: -

MVC中的

"Model"包含您将绑定并从httpget控制器返回的模型数据。


MVC中有'model''Model',一个用于声明模型的强类型,另一个用于访问模型本身。

以下说明用于模型的强类型是My.Models.abc。

@model My.Models.abc

这基本上将'variable'模型声明为该类型。

模型是变量,@ model是关键字,说明模型的类型。

答案 1 :(得分:0)

以下一行

@model MvcAppLearn.Models.StudentManager

正在定义视图的模型

x => x.Student.StudentId

对我的模型(StudentManager)说我会调用x,给我模型StudentId属性的Student属性

SelectList(Model.StudentList,"StudentId","FirstName")),
DropDownList需要

。它正在基于属性SelectList创建<select>(在StudentList代码中生成选项),并将StudentId值分配给value属性option,并将FirstName属性分配给option的文字。

Model关键字是必需的(并且是指视图中定义的模型)