我已经创建了一个类,并且基于这个类iam填充下拉列表而没有问题。但是在视野中我并不清楚逻辑。请查看最后一行代码,我有两个问题。
我无法理解x => x.Student.StudentId
的第一个参数,这里有什么用来获取StudentId
属性?
其次在最后一行我写了第二个参数(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--")
答案 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
关键字是必需的(并且是指视图中定义的模型)