在MVC

2009-11-20 46 views
1

下拉列表中我絕對新的MVC application.I希望我的窗體上的下拉列表中我已經這樣在MVC

"<%= Html.DropDownList("Categories", (IEnumerable<SelectListItem>)ViewData["Categories"])%>" 

我送從控制器類文件viewdata[Categories]做到了。

這樣

IList allCategories = _dropdownProvider.GetAllCategories(); 
ViewData["Categories"] = new SelectList(allCategories, "catid", "catname"); 

現在,我的要求是,當用戶從下拉列表其ID應該得到插入到數據庫中選擇特定類別, 的主要問題是類別ID我要插入的類別產品表中id爲外鍵的id。

請告訴我該怎麼做。

+0

你可以在你的控制器上粘貼你的方法簽名嗎? – Rippo

+0

另外,請問我知道這句話的意思是什麼「主要問題是類別ID我想插入產品表中的類別ID是外鍵」 – theraneman

+0

我想他想說他想設置與類別表的Id列具有外鍵關係的產品表的categoryId列。但它真的很難理解:) –

回答

2

通常你會做到以下幾點: -

在你看來,你將有...

Inherits="System.Web.Mvc.ViewPage<Product>" THIS IS A REFERENCE TO YOUR PRODUCT ENTITY 

,並在頁面,您可以做到這一點...

Category <%=Html.DropDownList("CatId") %> 

您還將擁有定義清單的GET控制器

public ActionResult Add() 
{ 
    ViewData["CatId"] = new SelectList(allCategories, "catid", "catname"); 

然後您可以從傳遞到Add方法的產品中獲得CatId,例如,

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Add(Product product) 
{ 
    int catId = product.CatId 

HTH。你應該購買一本關於這個主題的書,因爲MVC消除了很多與你綁定的痛苦。

0

當您嘗試發佈視圖時,您的查詢字符串中會出現「類別」鍵。您可以將其轉換爲long或您在表格中使用的類型,並將其設置爲您想要的產品實例。

如果這不是很清楚,請發送您的代碼以獲得更好的解釋。

0

如果我理解你的問題,你唯一需要做的就是檢查POST的「類別」鍵,它將包含DropDownList的所選

var selectValue = System.Convert.ToInt16(Request.Form["name"]); 

或者,如果你使用模型綁定器,並定義該值直接綁定的模型,你只需要更新與

bool x = TryUpdateModel(YourModelNameHere); 

此模型會自動檢測當前控制器的價值提供者和綁定將該值賦給模型中的相應屬性。

我重新邀請你在控制器中使用參數FormCollection並放置一個斷點,你可以看到POST內發送的所有值。所有這些值都可以通過Request.Form [「KEY」]