【问题标题】:DropDownList display only Name of ModelsDropDownList 仅显示模型名称
【发布时间】:2017-05-20 16:24:15
【问题描述】:

我必须创建一个DropDownList,该值通过 WCF REST 从数据库填充。到目前为止,json 得到了数据,但是当我使用它并将其放在DropDownList HTML Helper 上时,SelectList 始终只显示模型的名称。

Screenshot Result Name of model

但是当我将模型放在@HTML.DisplayFor 上时,显示的数据类似于this

查看

@Html.DisplayFor(model => model.GetClassID, "Select")
@Html.DropDownListFor(model => model.GetSchedule.ClassIDS, new SelectList(Model.GetClassID, "ClassID"), new { @class = "select2" })

我用过 Select 2 但很确定这不是课程错误,因为当我删除课程时没有任何变化

从 WCF 检索 JSON

public List<ClassIDOnly> GetSingleClassID()
{
    var json = new WebClient().DownloadString(SU.URLService + "ViewSingleClassID");
    JObject rss = JObject.Parse(json);
    JArray items = (JArray)rss["GetSingleClassIDResult"];
    var myReturn = new List<ClassIDOnly>();
    for (int i = 0; i < items.Count; i++)
    {
        myReturn.Add(new ClassIDOnly
        {
            ClassID = Convert.ToInt32(rss["GetSingleClassIDResult"][i]["ClassID"]),
        });
        Console.WriteLine(myReturn);
    }
    return myReturn;
}

它工作正常。

型号

public class MixSchedule
{
    public Schedule GetSchedule { get; set; }
    public List<ClassIDOnly> GetClassID { get; set; }
}

控制器

ClassModel cm = new ClassModel();
var viewm = new MixSchedule
{
    GetClassID = cm.GetSingleClassID()
};
return View (viewm);

我尝试了很多方法,包括使用 ViewBag,但结果是一样的。我的代码有问题吗?提前致谢。

【问题讨论】:

    标签: c# asp.net-mvc html-helper html.dropdownlistfor


    【解决方案1】:

    所以我认为你需要回顾一些事情:

    1. 在您的模型中,GetClassID 不应反映元素列表,而是用户选择的元素: 我可能看起来像这样:

      public class MixSchedule { public string ClassID { get; set; } }

    2. 如果您不告诉SelectList 哪个是dataTextField,它将调用ToString 方法。这就是为什么你没有得到正确的文本。所以它应该看起来像这样:

      @Html.DropDownListFor(model =&gt; model.ClassID, new SelectList(Model.GetClassID(), "ClassID", "ClassID"), new { @class = "select2" })

    【讨论】:

    • 嗯,我明白了。谢谢你让我稍后回顾一下
    • 我试过了,结果是这样ibb.co/nsiYdF
    猜你喜欢
    • 2020-06-10
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多