加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将下拉列表中的SelectedItem绑定到MVC 4中的模型

发布时间:2020-12-16 06:25:13 所属栏目:asp.Net 来源:网络整理
导读:我对MVC很新,所以请耐心等待,但我似乎无法在MVC 4的回发过程中将SelectList中的值绑定到所选对象的实例. 假设我必须创建一名教师作为学校的成员.我有一个ViewModel类定义如下: public class RegisterTeacherModel{ [Required] [Display(Name = "User name")
我对MVC很新,所以请耐心等待,但我似乎无法在MVC 4的回发过程中将SelectList中的值绑定到所选对象的实例.

假设我必须创建一名教师作为学校的成员.我有一个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始终为null.我必须错过模型绑定器在回发时重新创建对象引用的方式.谁能指出我正确的方向?

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读