asp.net-mvc – 如何从MVC控制器返回Json对象到视图
|
我做一个MVC应用程序,我需要传递json对象从控制器到视图。 var dictionary = listLocation.ToDictionary(x => x.label,x => x.value);
return Json(new { values = listLocation},JsonRequestBehavior.AllowGet);
上面的代码我使用在我的控制器,现在当我部署视图页面在我的浏览器中打开一个下载对话框,当打开文件,它给我的json对象作为我需要的格式。 现在我想返回我的视图页面也想访问视图页面中的json对象。我怎样才能做到这一点。 解决方法当你返回Json(…)时,你特意告诉MVC不要使用视图,并提供序列化的JSON数据。您的浏览器打开一个下载对话框,因为它不知道如何处理这些数据。如果你想要返回一个视图,只需返回View(…)就像你通常会: var dictionary = listLocation.ToDictionary(x => x.label,x => x.value);
return View(new { Values = listLocation });
然后在您的视图中,只需将数据编码为JSON并将其分配给JavaScript变量: <script>
var values = @Html.Raw(Json.Encode(Model.Values));
</script>
编辑 这里有一个更完整的示例。因为我没有足够的上下文,这个示例将假设一个控制器Foo,一个动作栏和一个视图模型FooBarModel。此外,位置列表是硬编码的: 控制器/ FooController.cs public class FooController : Controller
{
public ActionResult Bar()
{
var locations = new[]
{
new SelectListItem { Value = "US",Text = "United States" },new SelectListItem { Value = "CA",Text = "Canada" },new SelectListItem { Value = "MX",Text = "Mexico" },};
var model = new FooBarModel
{
Locations = locations,};
return View(model);
}
}
模型/ FooBarModel.cs public class FooBarModel
{
public IEnumerable<SelectListItem> Locations { get; set; }
}
视图/ Foo / Bar.cshtml @model MyApp.Models.FooBarModel
<script>
var locations = @Html.Raw(Json.Encode(Model.Locations));
</script>
通过看看你的错误消息,似乎你混合不兼容的类型(即Ported_LI.Models.Locatio n和MyApp.Models.Location),所以,重述,确保从控制器操作端发送的类型匹配什么从视图接收。对于这个示例,控制器中的新FooBarModel与视图中的@model MyApp.Models.FooBarModel匹配。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-5 – 使用FormsAuthenticationTicket的MVC Ide
- asp.net-mvc – 重定向到mvc中的actionresult但不想通过返回
- ASP.Net自定义会话状态管理
- asp.net – System.Web.Providers不适用于中等信任
- 使用Gzip在ASP.NET / IIS7中输出乱码错误页面
- asp.net-mvc-3 – 指定Html.TextBoxFor的大小和最大长度
- asp.net – 我想列出我的下拉列表中的所有国家/地区,我在哪
- asp.net – 从启用AJAX的WCF服务返回错误详细信息
- asp.net – 如何在IIS上配置Web部署发布功能,以便开发人员可
- asp.net-mvc – MVC捆绑客户端缓存
- asp.net – 是否可以访问配置文件而不更新LastAc
- asp.net-mvc – 使用Multipart格式的Web API模型
- asp.net-mvc – 将DropDownList绑定到MVC视图中
- asp.net-mvc – 更改的域错误 – OpenId授权请求
- asp.net – web配置错误:无法识别的属性’xmlns
- asp.net – Visual Studio 2008使用CodeBehind失
- 用于属性的ASP.NET MVC编辑器模板
- asp.net-mvc – 无法在Web服务器上启动调试.调试
- asp.net – 如何序列化LINQ-to-SQL惰性列表
- asp.net-mvc – 在ASP.Net MVC视图中显示/隐藏链
