我有兩個控制器HomeController
和MediaController
。 當我提交表單時,從HomeController
調用動作名稱EmployeeDetails
。當我從不同的控制器調用動作方法時,mvc中的會話null問題
[Authorize]
[HttpPost]
public ActionResult EmployeeDetails(Employee Employee, string Command)
{
MediaController MediaController = new Controllers.MediaController();
Employee.EmployeeModel.newImageId=MediaController.ProcessUploadedImage(FileUpload);
}
從這個方法我稱之爲ProcessUploadedImage
方法,該方法是在MediaContoller
public Guid ProcessUploadedImage(FileUpload uploadedFileMeta)
{
Session["WorkingImageExtension"]=uploadedFileMeta.Filename.Substring(uploadedFileMeta.Filename.LastIndexOf('.')).ToLower();
}
這裏的問題是,在ProcessUploadedImage
方法,我得到會話空值,這意味着當我檢查會話中的價值快速查看它顯示null.when我將鼠標懸停在會議上它在調試模式下顯示空。 所以我的問題是,我可以在交叉控制器方法訪問期間訪問會話嗎?
會話內可能沒有任何內容。嘗試'會議[「WorkingImageExtension」] =「一些默認值」'。然後檢查是否可以在另一個控制中訪問它。是的,您可以跨控制器訪問會話。它僅在關閉瀏覽器 – 2013-04-30 05:52:07
時被破壞,但在我的情況下,當我將鼠標懸停在會話而不是Session [「WorkingImageExtension」]上時,它會給我null,並給我一個錯誤,指出對象引用未設置爲對象的實例。 – 2013-04-30 05:55:34
你確定它的會話對象是null而不是'uploadedFileMeta'嗎?爲什麼不嘗試dotnetdreamer給出的建議,併爲'Session [「WorkingImageExtension」]'指定一個字符串,然後逐步完成。 – 2013-04-30 06:04:26