2015-11-06 88 views
1

我有一個模型,想將它傳遞給另一個區域的控制器。如何將模型傳遞給其他區域的控制器?

這是我的默認操作,但不工作:

public ActionResult defaultAction() 
{ 
    Class1 myclass = new Class1() { name = "xxx" }; 

    return RedirectToAction("Index", "MemberHome", 
          new { area = "member",model=myclass}); 
} 

行動在另一個領域:

[HttpPost] 
public ActionResult Index(Class1 c) 
{ 
    return View(); 
} 

回答

3

您正在試圖通過Class1類型的複雜對象RedirectToAction,這是做通過url字符串,因此不能接受。你可以改變你要發送的參數,

或使用TempData的:

TempData["class1"] = myclass; 

然後在索引操作找回

Class1 c = TempData["class1"] as Class1; 
+0

它,然後是如何工作的,當你想通過一個複雜的對象控制器在同一區域? – motevalizadeh

+0

它沒有。如果對象是可序列化的並且被添加到重定向操作的URL中,則存在「僞作品」處理,但是除了使URL長而醜陋外,它以明文(明顯)給出數據並且通常是不好的實踐。使用TempData可以轉義所有相關數據類型的gotcha和函數。 –

+0

'TempData'只支持一個請求。如果用戶刷新瀏覽器,則全部丟失,應用程序將失敗。 –

相關問題