2011-10-13 33 views
0

我在具有foriegn鍵的表中創建記錄。 foriegn鍵在查詢字符串中傳遞,我已經在ViewBag中設置了值。我已經將此添加到表單中,但它不起作用。 這裏是來自控制器的代碼:使用查詢字符串傳遞的值創建記錄

public ActionResult Create(int propertyId) 
{ 
     ViewBag.storagePropertyId = propertyId; 
     return View(); 
} 

這裏是從視圖的代碼。

@Html.HiddenFor(model => model.propertyId, new { value =ViewBag.propertyId }) 

這是我應該如何做到這一點?如果是這樣,那麼這種形式是否存在問題

回答

0

爲什麼不直接在控制器中設置Model.PropertyID的值,或者更好地在視圖模型中設置值。

視圖模型

public class MyViewModel() 
{ 
    public int PropertyID { get; set; } 

    public MyViewModel() { } 

    public MyViewModel(int propertyID) 
    { 
     this.PropertyID = propertyID; 
    } 
} 

操作結果

public ActionResult Create(int propertyId) 
{ 
    return View(new MyViewModel(propertyId)); 
} 

查看

@model MyViewModel 

@Html.HiddenFor(m => m.PropertyID) 

然後隱藏字段的值將包含屬性ID的值。

+0

好吧,我們只需要說模型目前有ExpenseID,PropertyID(這是外鍵),Field1等。當我創建viewModel時,它如何知道將viewModel值添加到費用表中? – johnungus

+0

你究竟想在這裏完成什麼? – simonlchilds

+0

我創建的費用記錄必須與一個屬性相關,它需要有一個propertyId。所以從屬性細節頁面我有一個添加費用記錄的按鈕。我只需要能夠在我創建的費用記錄中獲得正確的屬性ID。我明白這是一個非常基本的任務,我感謝你的時間。 -John – johnungus