1
簡版:當返回JSON時,從Controller.View(對象模型)修改ActionResult
System.Web.MVC.Controller.View(object)如何工作?
龍版本:
我需要預先設置我的JSON結果與任意字符串(Unparsable Curft)。
我不確定的是我如何修改ASP.NET MVC「管道」中的ViewResult。我已閱讀關於此主題的MSDN docs,但我仍不清楚如何處理此問題。
- 在這種情況下,View(Object)如何返回JSON字符串?
控制器樣品
[GridAction]
public ActionResult _SelectBatchEditingGrid(int? id)
{
// GridModel is of type IEnumerable if that matters.
// More info on the GridModel type see: http://www.telerik.com/help/aspnet-mvc/t_telerik_web_mvc_gridmodel_1.html
return View(new GridModel(SessionProductRepository.All())
}
查看樣品
<% Html.Telerik().ScriptRegistrar()
.OnDocumentReady(() =>
{%>
/* Protect from setter-property hacks; see https://stackoverflow.com/a/3147804/328397 */
$.ajaxSetup({
converters: {
"text cleanedjson": function(data) {
var jsonString = data.replace("throw 1; <dont be evil> ", "");
return $.parseJSON(jsonString);
} // End function
} // end conveter
}); // end ajaxsetup
- 什麼是前面加上一個字符串,我的JSON數據的最佳方式,通過
return View(someObject)
方法?
理想情況下,爲每個相關方法添加一個屬性可能是最好的方法,但是我可以通過反射處理這個問題,一旦我瞭解瞭如何修改JSON結果。
使用字符串很簡單...但是我正在使用的應用程序具有'public ActionResult ReturnSomeJSON'方法簽名。通過向Controller.View(Object)發送一個[Telerik GridModel](http://www.telerik.com/help/aspnet-mvc/t_telerik_web_mvc_gridmodel_1.html)類來返回數據, 'IEnumerable'到'ActionResult'中。我很確定'ToString()'在我的情況下沒有被調用。在這種情況下,MVC的視圖如何將視圖(對象)轉換爲JSON字符串的ActionResult? –
LamonteCristo
2012-02-20 19:51:46
不知道我理解你的問題。顯示控制器和視圖的一些相關代碼將有所幫助。 – 2012-02-20 20:10:10
根據您的請求更新 – LamonteCristo 2012-02-20 20:13:45