2011-05-11 47 views
2

我希望能夠得到結果,ActionResult將直接在我的控制器中生成以用於調試目的。我怎麼做?從控制器中直接獲取ActionResult的結果

喜歡的東西:

public ActionResult Parts(string id) 
{ 
    var parts = _repository.GetParts(id); 
    var action = Json(parts); 

    var generatedJson = XXXXX; 

    return action; 
} 

回答

3

爲了調試你一定要使用調試工具,如FireBugFiddler目的,但如果你堅持 污染 修改源代碼,在調試模式下,你可以看看在JavaScriptSerializer類(這是內部使用JsonResult類):

var generatedJson = new JavaScriptSerializer().Serialize(parts); 
+1

因爲您不知道如何/爲什麼需要它或我的代碼通常如何顯示,所以污染評論是不必要的。 – jgauffin 2011-05-11 13:50:56

+0

@jgauffin,這是正確的,並有一個很好的理由在問題中提到它。這樣可以避免這樣的評論,甚至可以爲你的場景提出一個不同的,更適合的答案。 – 2011-05-11 13:54:39

+0

imho它根本不相關。我的問題很具體,應該夠了。如果我想要替代品,我會不同地問。如果您想告訴新用戶所需的解決方案可能不是正確的,我會理解。 – jgauffin 2011-05-11 14:00:41

0

既然你正在返回JSON和我假設你想看看結果,你可以在Firefox中,jsonview使用JSON插件的瀏覽器。至少我是這麼做的。

如果是由於某種其他原因,請指定您想要做的事情。

+0

否我想在控制器中獲取json作爲字符串 – jgauffin 2011-05-11 08:38:46

0

對結果調用ExecuteResult。

但是,如果您想檢查它返回的json,請使用瀏覽器調試工具以及一些json查看器插件。

0

你也可以使用類似NLog的東西,並將其綁定到你的global.asax中的ILogger。之後,您可以暫時將任何與json相關的控制器操作發送到日誌文件以供日後檢查。

另一種方法是使用動作過濾器並裝飾要捕獲的動作(可將這些動作保存在日誌文件或其他可視化渲染設備中)。還有,你可以爲你的目的,適應這裏的一個很好的例子:

http://binary-studio.com/blog/technical-blog/asp-net-mvc-custom-action-filters/

希望這有助於..

相關問題