2010-08-22 70 views
1

下面是这种情况ASP.NET MVC - 返回JavascriptResult和JSON参数

在MVC中,很容易返回一个Javascript被客户

public ActionResult DoSomething() 
{  
    return JavaScript("alert('Hello world!');");    
} 

上运行在客户端,我有一个Javascript接受一个JSON对象作为参数与此类似

东西:

function open(options) {...} 

我想叫从我的动作传递给它的服务器上生成一个JSON对象,这个函数 所以我写了这个

public ActionResult DoSomething() 
{ 
     var viewData = new {...}; 
     return JavaScript("open('" + Json(viewData) + "')");   
} 

然而,当我的JavaScript函数被调用,我没有得到任何数据,但这样的: open('System.Web.Mvc.JsonResult')

我会感谢所有帮助在这个问题上

感谢

+0

你能告诉我所有的JavaScript代码吗?请! – 2011-01-19 12:10:32

回答

2

JSON的方法返回一个JsonResult。不是JSON字符串。您可以使用JavaScriptSerializer

public ActionResult DoSomething() 
{ 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     var viewData = new {...}; 
     return JavaScript("open('" + serializer.Serialize(viewData) + "')");   
} 

根据open方法如何您的客户端工作,你可能需要通过简单地去掉'周围的方法参数发送JSON数据作为JSON对象,而不是一个字符串。

+0

我删除了'围绕方法论点,这有效地工作。 非常感谢您的帮助 – user385411 2010-08-22 09:14:07