gpt4 book ai didi

asp.net-mvc - 将下拉列表中的 SelectedItem 绑定(bind)到 MVC 4 中的模型对象

转载 作者:行者123 更新时间:2023-12-05 01:24:33 24 4
gpt4 key购买 nike

我对 MVC 很陌生,所以请耐心等待,但在 MVC 4 的回发期间,我似乎无法将 SelectList 中的值绑定(bind)到所选对象的实例。

假设我必须创建一个教师作为学校的成员。我有一个这样定义的 ViewModel 类:

public class RegisterTeacherModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }

[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }

[Required]
[Display(Name = "School")]
public School SelectedSchool { get; set; }

[ScaffoldColumn(false)]
public Guid UserId
{
get;
set;
}

public SelectList PossibleSchools
{
get;
private set;
}

public RegisterTeacherModel(IRepository<School> schoolRepo)
{
PossibleSchools = new SelectList(schoolRepo, "Id", "Name");
}
}

我的观点:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
<legend>RegisterTeacherModel</legend>

<div class="editor-label">
@Html.LabelFor(model => model.UserName)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.SelectedSchool)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.SelectedSchool, Model.PossibleSchools)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}

最后,我的 Controller 方法:
    [HttpPost, ActionName("Create")]
public ActionResult CreateTeacher(RegisterTeacherModel teacherModel)
{
if (ModelState.IsValid)
{
try
{
...
}
}
}

但是,当我在 Controller 的 Create 方法中收到 RegisterTeacherModel 对象时,SelectedSchool 始终为空。我必须在模型绑定(bind)器在回发时重新创建对象引用的方式上遗漏了一些东西。谁能指出我正确的方向?

最佳答案

我认为您在第二篇文章中提到了它:尝试将初始代码指向 Model.SelectedSchool。 <IdProperty>

<div class="editor-field">
@Html.DropDownListFor(model => model.SelectedSchool.**<IdProperty>**, Model.PossibleSchools)
</div>

关于asp.net-mvc - 将下拉列表中的 SelectedItem 绑定(bind)到 MVC 4 中的模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11527804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com