我需要兩項行動結果之間傳遞一些數據,所以我想我會嘗試TempData
(我真的很新的MVC這樣忍耐一下)。這是我試過的:int爲null但TempData不是?
public ActionResult Edit(Companies companies, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
try
{
if (file != null)
{
//Do stuff with file, save changes to database etc.
TempData["Companies"] = companies;
return RedirectToAction("bgcTest2", "Companies");
現在存儲了臨時數據。並檢索它:
public ActionResult bgcTest2(string BolagsID, Companies companies)
{
try
{
companies = TempData["Companies"] as Companies;
int test = companies.BolagsID;
現在,這裏的問題; companies.BolagsID
有一個值,但test
始終爲空。爲什麼?我該如何解決它?
編輯:
我注意到一個相當奇怪的事;當試圖達林Dimitrovs建議,並可能做我嘗試藏漢的時候,如果我把一個斷點只在它返回空值它不會破壞後才行線。就好像該行被註釋掉並且根本不執行一樣。歡迎來到暮光之城。
EDIT2:
以2:
[HttpPost]
public ActionResult Edit(Companies companies, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
try
{
if (file != null)
{
// non related stuff
return RedirectToAction("bgcTest2", "Companies", new {BolagsID = companies.BolagsID});
和:
[Authorize]
public ActionResult bgcTest2(int BolagsID)
{
try
{
int test = BolagsID;
我仍然得到的是 「測試並不在當前的背景下存在」。
EDIT3:
取2個工作正常。我的變量是null
,因爲我從來沒有在任何地方使用它們。我認爲我一次只能採取一步,但很明顯,在某些情況下,您必須採取幾個步驟才能看到它們中的任何一個。
教訓:一定要使用聲明的變量,否則會null
。
如何'test'爲null,它'int'不是'詮釋?'? – Habib
我不知道,但是在調試時,「int test」中的「添加監視」給了我null。這是奇怪的事情。 –
您是否檢查天氣公司從TempData [「Companies」]有一些價值? –