相关疑难解决方法(0)

在视图中将.Net对象转换为JSON对象

我想在视图中将.Net对象转换为JSON.我的视图模型是这样的,

public class ViewModel{
    public SearchResult SearchResult { get; set;}    
}    

public class SearchResult {
    public int Id { get; set; }
    public string Text{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想转换Model.SearchResult为JSON对象.我正在这样做:

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
//....
var s = @serializer.Serialize(Model.Institution);
Run Code Online (Sandbox Code Playgroud)

但结果是这样的,

var s = { "Name":"a","Id":1};
Create:228Uncaught SyntaxError: Unexpected token &
Run Code Online (Sandbox Code Playgroud)

如何将其正确转换为JSON对象?

javascript jquery json asp.net-mvc-3

33
推荐指数
2
解决办法
3万
查看次数

如何使用ViewBag中的JSON填充javascript变量?

我有这个索引动作:

public ActionResult Index()
{  
    var repo = (YammerClient) TempData["Repo"];
    var msgCol = repo.GetMessages(); 

    ViewBag.User = repo.GetUserInfo();
    return View(msgCol.messages);
}
Run Code Online (Sandbox Code Playgroud)

GetMessages返回POCO消息列表,GetUserInfo返回一个POCO,其中包含用户信息(id,name等).

我想用用户信息的JSON表示填充javascript变量.

所以我想在视图中做这样的事情:

...
<script>
    var userInfo = "@ViewBag.User.ToJson()"
</script>
...
Run Code Online (Sandbox Code Playgroud)

我知道这不起作用,但有办法吗?我想避免在加载页面后只是为了获取用户信息而执行ajax请求.

javascript asp.net asp.net-mvc json viewbag

21
推荐指数
2
解决办法
4万
查看次数

Asp.net mvc将C#对象传递给Javascript

我有c#class say更像AjaxOptions的选项.

public class options
{
   public string Url {get;set;}
   public string httpMethod {get;set}
}
Run Code Online (Sandbox Code Playgroud)

和这样的javascript函数

function dosomething(obj)
{
   if (obj.Url!="" and obj.HttpMethod=="something")
    loadsomething();

}
Run Code Online (Sandbox Code Playgroud)

现在在我的Controller动作中

 public class mycontroller : controller
 {
    public ActionResult WhatToDo()
    {
       options obj = new options{Url="someurl"};
       return PartialView(obj);
    }


 }
Run Code Online (Sandbox Code Playgroud)

在我看来,我需要这个对象类型的字符串,我应该能够传递给我的方法.

@model options

<script>
   dosomething(@model.SomeFunctionToConverToString())

</script>
Run Code Online (Sandbox Code Playgroud)

所以我需要这个SomeFunctionToConverToString方法,我将这个对象转换为字符串.

谢谢

javascript asp.net-mvc object

20
推荐指数
2
解决办法
8万
查看次数

为JsonResult调用@ Html.Action会更改父模板中的响应类型

我有以下控制器:

public class HelloController
{
    public ActionResult Index()
    {
        return View()
    }

    public ActionResult Hello()
    {
        return Json(new{ greeting = "hello, world!" }, JsonRequestBehavior.AllowGet);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,里面Index.cshtml:

...html stuffs
<script type="text/javascript">
    alert("@Html.Action("Hello")");
</script>
Run Code Online (Sandbox Code Playgroud)

我发现,当我在浏览器中访问此URL时,响应内容类型会application/json; charset=utf-8导致浏览器将html呈现为字符串而不是...网页.

什么是最好的解决方法?

asp.net-mvc content-type jsonresult

11
推荐指数
2
解决办法
3951
查看次数

使用Javascript访问ASP.NET MVC模型数据

我有一个强类型的View接受Customer模型,这个客户模型是一个LINQ2SQL部分类,它有一个名为Journeys的属性,它返回与该Customer关联的所有Journeys.

我想知道是否可以从Javascript中作为JSON对象访问Customer.Journeys属性.

这可能吗?如果是这样,我将如何访问它?我是否最好创建一个FormViewModel并将Customer详细信息和Journey详细信息存储为JSON对象,并使用以下内容将其传递给javascript函数:

<% MyJavascriptFunction(Model.JSONJourneys) %>
Run Code Online (Sandbox Code Playgroud)

或者我应该更改Journeys分部类并添加.ToJson()属性?还是完全不同的东西?

谢谢.

asp.net-mvc json

1
推荐指数
1
解决办法
8021
查看次数