【问题标题】:DropDownList remains emptyDropDownList 保持为空
【发布时间】:2018-06-07 08:45:11
【问题描述】:

我进行了很多搜索,但无法确定问题出在哪里,它返回一个带有“Seleccione Rol”文本的空 DropDownList,所以我猜问题是 DDL 没有被填充,我非常感谢任何帮助。

控制器:

public ActionResult Usuario_rol()
{
    using (proyectob_dbEntities db = new proyectob_dbEntities())
    {
        usuario_rol model = new usuario_rol();
        model.rolesList = db.roles;

        //roles model2 = new roles();
        //model.roles.rolesl = db.roles;
    }
    return View(new usuario_rol());           
}

观点:

<div class="form-group">
    @Html.LabelFor(model => model.roles, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-5">
        @Html.DropDownListFor(model => model.id_rol, new SelectList(Model.rolesList, "id", "rol"),"Seleccione Rol")
    </div>
</div>

模特:

public partial class usuario_rol
{
    public string id { get; set; }
    public string id_usuario { get; set; }
    public string id_rol { get; set; }
    public System.DateTime fecha_inicio_rel { get; set; }
    public System.DateTime fecha_termino_rel { get; set; }

    public virtual contactos contactos { get; set; }
    public virtual roles roles { get; set; }

    public virtual IEnumerable<roles> rolesList { get; set; }

    public usuario_rol()
    {
        rolesList = new List<roles>();
    }

数据库:

【问题讨论】:

  • 您只是返回模型的一个新实例,而不是您填充数据的那个。 return View(model);(但删除你 using 块)

标签: c# asp.net-mvc visual-studio entity-framework


【解决方案1】:

您不是将模型发送给查看,而是将新的空对象传递给查看。

用这个return View(model);更改return View(new usuario_rol());

【讨论】:

  • 非常感谢,我将usuario_rol model = new usuario_rol(); 放在了 using 之外,现在它可以工作了,然后我在model.rolesList = db.roles.ToList(); 中添加了 ToList() ,因为它给出了“DbContext 已被处理”的错误,谢谢你 CodeNotFound (不知道为什么你的答案被删除了)
【解决方案2】:

我认为这应该可行:

上下文:

public class RoleContext  
{  
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MYConnector"].ToString());  
    public IEnumerable<RoleTable> GetRoleList()  
    {  
        // it would be good if you put inline query in procedure
        string query = "SELECT RoleName,RoleId FROM RoleTable";  
        var result = con.Query<RoleTable>(query);  
        return result;  
   }  
}

动作方法:

public ActionResult Usuario_rol()
{
    RoleContext roleList = new RoleContext();
    usuario_rol model = new usuario_rol();
    using (proyectob_dbEntities db = new proyectob_dbEntities())
    {
        model.rolesList = new SelectList(roleList.GetRoleList(),"RoleName","RoleId");
    }
    return View(model);
}

还有观点:

@namespace of the model
<div class="form-group">
@Html.LabelFor(model => model.roles, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-5">
    @Html.DropDownListFor(model => model.id_rol, model.rolesList ,"Seleccione Rol")
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 2014-08-29
    • 2016-06-30
    • 2012-07-24
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多