javascript - ASP.NET MVC - 返回 JavascriptResult 和 Json 参数

标签 javascript asp.net-mvc json

场景是这样的

在MVC中,很容易返回一个Javascript在客户端执行

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

在客户端,我有一个将 JSON 对象作为参数的 Javascript

类似的东西:

function open(options) {...}

我想从我的操作中调用这个函数,传递给它一个在服务器上生成的 json 对象 所以我写了这个

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

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

我将不胜感激在这件事上的任何帮助

谢谢

最佳答案

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

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

根据客户端 open 方法的工作方式,您可能需要通过简单地删除方法参数周围的 ' 将 json 数据作为 json 对象而不是字符串发送。

关于javascript - ASP.NET MVC - 返回 JavascriptResult 和 Json 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3540761/

相关文章:

asp.net-mvc - ASP.NET MVC - 将 GET 值附加到每个 URL ... ActionLink?路由?如何?

asp.net-mvc - 长时间运行的进程将返回一个文件

json - Groovy JSON/GPath 查询

javascript - Backbone 101 - 在主干中使用 JSON 数据

c# - ASP.NET MVC 中的用户多个月使用相同的 SessionID

javascript - 如何更新 JavaScript Assets 映射以返回动态字段?

javascript - 我想让vuejs中的图像可点击

javascript - 如何将文本字段的值拆分为包含每个字符的数组,而不是访问该数组?

javascript - 用于构建音序器的 Web Audio API 调度。我不明白

javascript - 将 React JSX 对象转换为 HTML