【发布时间】:2009-11-23 14:23:38
【问题描述】:
我发现自己需要从我的控制器操作中将各种 JSON 结果返回给客户端。我创建了 ContentResult 类型的静态“助手”方法。我希望能够在多个项目中重用这些帮助程序,因此我在它们自己的类中创建了它们,并且很快有一天我会将它们移动到它们自己的程序集中。
这是我的问题:其中一些返回帮助程序需要访问控制器上下文,因此我在控制器上创建了 then 作为扩展方法。我喜欢 Html Helper 方法是 HtmlHelper 类上的扩展方法的方式,但是我找不到与 View 类上的 Html 属性类似的合适的控制器属性,所以我只是扩展了控制器。 下面是返回助手的代码。我想知道是否有更好的方法来做到这一点。
public static ContentResult AJAXRedirect(this Controller cont, string action,
string controller, object routeValues)
{
string url = cont.Url.Action(action, controller, routeValues);
string json = "{{\"redirect\": \"{0}\" }}";
json = string.Format(json, url);
return new ContentResult
{
Content = json,
ContentType = "text/x-json",
ContentEncoding = Encoding.UTF8
};
}
【问题讨论】:
-
使用 JsonResult 代替 ContentResult
标签: asp.net-mvc json