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