2014-01-15 91 views
0

我想弄清楚,如果我能做到這一點,以及如何..「匿名類型」參數

我有一個動作的結果這樣定義的:

public virtual JsonResult Created(string tableName, object where) 
    { 
     ....some code 
    } 

我使用T4MVC,我試圖調用操作的結果是這樣的:

MVC.MyController.Created("MyTable", new { Name = "Matt", Age = 11}) 

但在控制器,其中參數具有類型的對象{字符串[]} ,它只有一個入口和一個廁所ks是這樣的:

where[0]="{ Name = "Matt", Age = 11 }" 

有沒有辦法在MyController中獲取where參數作爲匿名類型?

更新:

的創建方法是每隔幾秒鐘看在數據庫中,如果某行created.This返回真所謂是調用創建方法的方法:

public virtual ActionResult WaitingForUpdate(JsonResult pollAction, string redirectToOnSave = null) 
    { 
     return View("CommandSentPartial", new CommandSentModel 
               { 
                Message = "Waiting for update", 
                PollAction = pollAction, 
                RedirectTo = redirectToOnSave 
               }); 
    } 

然後我打電話

WaitingForUpdate(MVC.MyController.Created("MyTable", new { Name = "Matt", Age = 11})) 
+0

T4MVC撇開,你如何在普通的MVC中做到這一點?請參閱第1.1節。在https://t4mvc.codeplex.com/documentation –

+0

感謝您的想法!我嘗試這樣做:new MyController()。Created(「MyTable」,new {Name =「Matt」,Age = 11})它工作得很好,where參數是控制器中的匿名類型,所以我認爲是一個T4MVC問題... –

+0

你嘗試的是不同的,因爲你正在做一個直接的方法調用。使用T4MVC和直MVC,你最終創建一個鏈接(一個URL),當點擊時,調用你的動作。你能展示一點你的代碼嗎?你如何使用方法調用返回的內容?例如你在調用'Html.ActionLink()'嗎? –

回答

1

如果你的目標是直接調用Create方法,那麼你不應該使用T4MVC,而只是做一個直接的方法調用它。 T4MVC將幫助生成稍後通過MVC路由調用Action的鏈接。你可以直接致電

this.Created(...) 

直接?

+0

我不這麼認爲。 MyController基於通過依賴注入提供的一些輸入,直接使用它意味着我必須提供這些輸入... –