2012-05-18 96 views
1

我想要做的是使用類別存儲庫中的類別填充SelectList。 有點模型http://mockupbuilder.com/App/15379如何使用類別列表填充選擇列表

我現在已經是一個控制器:

[HandleError] 
public class ProductController : Controller { 
    private IRepository<Product> exhibitions; 
    private IRepository<Category> categories; 
    private readonly Int32 PageSize = 18; 

    // ctor ... 

    [HttpPost] 
    public ActionResult Create(Product product, Guid categoryId) { 
     // validation ... 
     // properties setting ...    
     product.Category = categories.Get(categoryId); 
     return View(product); 
    } 

範疇類是這樣的:

public class Category : AbstractEntity<Category> { 
    public String Title { get; set; } 
    public String Description { get; set; } 
} 

如何填充SelectList?我如何使用JSON

謝謝!

回答

2

您可以將List放入viewbag並使用aspx代碼進行渲染。類似下面:

[HttpGet] 
public ActionResult Create() // your create page render action 
{ 
    Viewbag.CategoryList = categories.GetAll(); //put it into viewbag 

    return View(); 
} 

並且在視圖頁面,這樣的事情:

<select name="categoryId"> <%-- use name attribute to bind action parameters and model --%> 
<%foreach (Category item in Viewbag.CategoryList) 
    { %> 
<option value="<%=item.Id %>"><%=item.Title %></option> 
<% } %> 
</select> 

如果你想通過JSON來填充類別。 您的類別控制器就像寫一個新的動作:

public class CategoryContrller : Controller{ 
    .... 

    [HttpGet] 
    public ActionResult GetAll() 
    { 
     var categories = categories.GetAll(); //put it into viewbag 

     return Json(categories, JsonRequestBehavior.AllowGet); 
    } 
} 

而在你的頁面的JS邏輯使用Ajax調用它和處理結果。