0

我正在使用選擇列表來傳遞文本到複選框,我想要的是將2個文本字段傳遞給複選框列表,但選擇列表沒有任何選項提供2或3個數據文本字段,我想自定義喜歡,但不能讓智能感知工作:在MVC的SelectList中添加額外的數據文本字段

public ActionResult Create() 
    { 
     IProductRepository ProductResp = new ProductRepository(); 
     IQueryable<Object> getAllProducts = ProductResp .GetProductsSelectlist(); 

     List<object> newList = new List<object>(); 
     foreach (var events in getAllProducts) 
      newList.Add(new 
      { 
       Id = getAllProducts.Name, // I cant get .Name or DateAdded Intellisense here 
       Name = getAllProducts.Name + " " + getAllProducts.DateAdded 
      }); 

     ViewData["events"] = new SelectList(newList.ToList(), "Id","Name"); 
     return View(); 
    } 

ProductRepository

public IQueryable<Object> GetProductssSelectlist() 
    { 

     ApexWorldEntities entity = new ApexWorldEntities(); 

     var query = from v in entity.Products 
        where v.Date > DateTime.Now 
        select new { ProductID = v.ID, v.Name , v.Date}; 
     return query.OrderBy(v => v.Date); 

    } 
+0

你所說的是什麼意思?種類不知道你想實現什麼 – cpoDesign

回答

1

首先,創建一個類來保存你的結果:

public class ApexWorldResult 
{ 
    public int ProductID { get; set; } 
    public string Name { get; set; } 
    public DateTime Date { get; set; } 
} 

然後,投你的目標集合到一個實際的類型:

var query = from v in entity.Products 
      where v.Date > DateTime.Now 
      select new ApexWorldResult { ProductID = v.ID, v.Name, v.Date }; 

Create()法,IQueryable<Object>聲明更改爲IQueryable<ApexWorldResult>,它應該爲你工作...

+0

我的問題與自定義選擇列表中的文本字段有關,而我正在使用Repository接口 –

1

除了我的評論

你需要定義的是代替對象使用「SelectListItem」 這是構建用於選擇列表項目。您可以在其中指定文字,價值和價值。 和

模型定義:

class FooModel{ 
public SelectListItem selectList{get;set;} 
... 
} 

並在控制器使用:可是沒有任何選擇,提供2個或3個數據文本字段選擇列表:

public ActionResult YourAction(){ 

FooModel model = new FooModel(); 
    //Define your collection of list items 
    List<SelectListItem> listItems = new List<SelectListItem>(); 
      listItems.Add(new SelectListItem(){Selected = false, Text = "Text", Value = "MyValue"}); 
    //Assign the list to the collection 
    model.selectList = new SelectList(listItems); 
    //Pass to the view 
    return View(model); 
} 
相關問題