sor*_*rke 5 javascript asp.net-mvc json
我正在使用ASP.NET MVC,我正在尝试生成一段javascript作为视图呈现的一部分.我有一个公开一个简单类型数组的模型,我想在视图中生成一个javascript/json等效数组,以便我可以使用jQuery对它进行操作.所以给出以下模型:
public class Info {
public string Name {get;set;}
public int ID {get; set;}
}
public class InfoModel{
public Info[] InfoList {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
...我想生成一个如下所示的javascript数组:
var infoList = [
{
Name = "...",
ID = 1
} ,
{
Name = "...",
ID = 2
},
....
{
Name = "...",
ID = N
}];
Run Code Online (Sandbox Code Playgroud)
有没有一个简洁明了的方法在视图中执行此操作,如果我尝试让模型生成json表示,我似乎在编码引号时遇到问题,所以目前我只能使用一些spaghetti /经典asp代码生成它我宁愿用漂亮的单线代替.
编辑:请注意,我不是要找一个控制器返回一个JsonResult,我想让我的视图包含一个javascript数组,该数组是从我的模型中生成的一行代码(如果可能的话)
编辑:我有一部分,但似乎在努力编码.视图中的此代码:
<script>
var list = <%: HtmlExtension.ToJson(Model.InfoList) %>;
</script>
Run Code Online (Sandbox Code Playgroud)
(其中ToJson使用JavaScriptSerializer封装转换为字符串)输出一些编码错误:
var info = [{"Name":"Low End","ID":1}];
Run Code Online (Sandbox Code Playgroud)
..这不是我想要的.我能做到这一点:
var info = <% Response.Write(HtmlExtension.ToJson(Model.InfoList)); %>;
Run Code Online (Sandbox Code Playgroud)
哪个有效,但看起来不那么闪亮.我应该明确地忽略所示的编码(输出是理智的,不是用户生成的,所以它可能不是问题)或者我是否遗漏了其他使得它不那么经典的asp?
看来你有一个编码问题.我相信你有两个选择:
MvcHtmlString而不是正常string,或者...<%: ... %>样式来编写代码,而是使用<%= ... %>不进行编码.