数据未绑定到mvc4中的Kendo下拉列表

时间:2014-02-17 13:32:09

标签: asp.net-mvc-4 kendo-ui

数据未绑定到Kendo下拉列表列表正在从我的方法返回 我的下拉列表

  @(Html.Kendo().DropDownListFor(model => model.ParentAssetID)
       .OptionLabel(" ")
      .Name("ParentAssetID")
      .DataTextField("AssetName")
      .DataValueField("AssetId")
      .SelectedIndex(0)                    
      .Text(string.Empty)
      .DataSource(source =>
      {
          source.Read(read =>
          {
              read.Url("../Asset/GetAllAssetsByCompanyId");
          });
      }))

我的行动结果

 public IEnumerable<AssetDetails> GetAllAssetsByCompanyId()
    {
        IList<AssetDetails> _assetSearchlist;
        using (var client = new HttpClient())
        {
            AssetRepository assetrep = new AssetRepository();
            Guid cp = new Guid(Session["CurrentCompanyId"].ToString());
            _assetSearchlist = assetrep.GetAllAssetsByCompanyId(cp, "", "", "");
            return _assetSearchlist;
        }
    }

2 个答案:

答案 0 :(得分:2)

public JsonResult GetOpportunityListByAccount(string Id)
    {
        Guid ID = new Guid(Id);
        List<OpportunityViewModel> cpvm = new List<OpportunityViewModel>();


         List<CrmOpportunity> crmOppList = new List<CrmOpportunity>();

           cpvm  = srv.OpportunitySet.Where(z => z.CustomerId.Id == ID).ToList();

           foreach (var crm in cpvm )
           {
               CrmOpportunity crmOpp = new CrmOpportunity();
               crmOpp.Id = crm.Id;
               crmOpp.Name = crm.Name;
               crmOppList.Add(crmOpp);
           }

            return Json(crmOppList, JsonRequestBehavior.AllowGet);
    }  


 @(Html.Kendo().DropDownListFor(x => x.FromOpportunity)    
     .Name("OpportunityDDL")                 
          .DataTextField("Name")              
          .DataValueField("Id")                         
          .DataSource(source => {
              source.Read(read =>
               {
                   read.Action("GetOpportunityListByAccount", "CrmIntegration");                          
               })
                . ServerFiltering(true);
          })     

          .HtmlAttributes( new { style = "margin-left:13px; width: 275px;" })
   )     

数据访问有点截断,但这是您需要做的事情

答案 1 :(得分:0)

@(Html.Kendo().DropDownListFor(model => model.ParentAssetID)
       .OptionLabel(" ")
      .Name("ParentAssetID")
      .DataTextField("AssetName")
      .DataValueField("AssetId")
      .SelectedIndex(0)                    
      .Text(string.Empty)
      .DataSource(source =>
      {
          source.Read(read =>
                  {
                      read.Action("GetAllAssetsByCompanyId", "Asset");
                  });
      }))

只是一个小小的改变,但你试过read.Action?也可以尝试删除以下内容;

DropDownListFor(model => model.ParentAssetID)

并替换为

DropDownListFor<ClassName>()

只有一个想法。