2011-10-17 44 views
7

我有一個控制器和一個動作。這個動作是將數據保存到數據庫中。現在,當我提交按鈕時,我的控制器會執行一個操作並打開新窗口。ASP.Net MVC 3控制器動作並打開新窗口

public ActionResult New(FormCollection collection) 
    { 

     data.Population_Code = collection["Countrys[0].CountryCode"]; 
     data.Population_Desc = collection["Countrys[0].CountryDesc"]; 
     data.Population_Grouping = collection["Countrys[0].CountryGroup"]; 
     data.Population_Type = "CNTRY"; 
     data.Population_Redudant = "N"; 
     data.Population_Modified_At = officeCode.User_Office.ToString(); 
     db.SaveChanges(); 

     //example for new window 
     //window.open('/Report/New.aspx') 

     return RedirectToAction("index"); 
    } 

所以我控制器做一個動作,並打開一個新的窗口。

任何人都可以幫助我嗎?

謝謝

回答

16

從技術上講,可以通過返回javascript來打開新窗口。

但是,大多數瀏覽器會殺死以此方式調用的新窗口(即彈出窗口阻止程序)。

如果可能的話,您可以從一開始就在新窗口中打開您的操作鏈接;

@Html.ActionLink("New report", "New", "Report", null, new {target = "_blank"}) 

編輯

我可以從你的行爲看,這有可能是創建該報告的格式;您也可以在表單上使用屬性target='_blank'

+0

謝謝馬特,是的,這是用於顯示報告。其實,我有菜單報告。但現在我的老闆告訴我要做一些類似的事情,只要控制器執行新操作,它會在新窗口中顯示報告。現在,我很困惑如何獲得我添加的價值。請參閱編輯 –

+0

是的,您可以使用actionlink示例創建菜單鏈接。這只是在調用動作之前打開新窗口*,然後可以保存數據並打開報告視圖。 –

+0

謝謝我已經完成了我的問題。我使用cookie來存儲batchId。 –