我知道這是一個愚蠢的問題,但裸露在我身邊,請即時相當新。如何從視圖中的viewBag爲模型分配一個值
我在我的模型稱爲的ExtraValue一個字符串屬性,並在視圖我有一個ViewBag與價值,我想要分配的價值在viewbag示範財產(的ExtraValue)
我想:
@{Model.extraValue = ViewBag.id}
我在得到的ExtraValue一個空值,即時通訊相當肯定ViewBag.id持有數量。
有什麼想法嗎?
我知道這是一個愚蠢的問題,但裸露在我身邊,請即時相當新。如何從視圖中的viewBag爲模型分配一個值
我在我的模型稱爲的ExtraValue一個字符串屬性,並在視圖我有一個ViewBag與價值,我想要分配的價值在viewbag示範財產(的ExtraValue)
我想:
@{Model.extraValue = ViewBag.id}
我在得到的ExtraValue一個空值,即時通訊相當肯定ViewBag.id持有數量。
有什麼想法嗎?
當您發佈它時,您無法從ViewBag中獲取該值。
ViewBag被desiged把一些有用的數據和accessible at rendering view only
如果您要訪問,那麼你需要使用一些隱藏域視圖保存。
@{Model.extraValue = ViewBag.id}
和
@Html.HiddenFor(m=>m.extraValue).
現在你可以能夠得到的ExtraValue控制器,因爲你回發與HiddenField
public ActionResult Save(Model model)
{
var extra=model.extraValue;// this will bring your viewbag id assigned
}
是的,它的工作,感謝很多花花公子 – user2962142
@ user2962142,不客氣 –
雖然這個工程,它沒有多大意義。如果你可以在'ViewBag'中設置一個值,那麼你可以直接在模型本身上直接設置它,否則就無需使用ViewBag。如果您的困惑是在渲染時間之前沒有模型實例(通過執行'返回View()'),您實際上可以將模型實例傳遞給View(),即var model = new Something {extraValue = 1} ; return View(model);' –
您很可能在操作方法中設置ViewBag值。喜歡的東西:
ViewBag.id = idValue;
您還傳遞了一個模型來查看:
return View(myModel)
我建議你設置extraValue
屬性控制器,而不是在視圖:
myModel = idValue;
return View(myModel);
我不能這樣做,因爲該方法使用不同的模型 – user2962142
的幫助下,你可以通過使用隱藏式輸入將其'name'屬性設置爲Model變量以獲取post方法的值。
<input type="hidden" name="extraValue" value="@ViewBag.id"/>
請查看我的答案。我更新 –