栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从MVC控制器返回Json对象以查看

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从MVC控制器返回Json对象以查看

在执行此操作时,

return Json(...)
您明确地告诉MVC 不要使用view
并提供序列化的JSON数据。您的浏览器会打开一个下载对话框,因为它不知道如何处理这些数据。

如果您想返回视图,请像平常一样执行操作

return View(...)

var dictionary = listLocation.ToDictionary(x => x.label, x => x.value);return View(new { Values = listLocation });

然后在您的视图中,只需将数据编码为JSON并将其分配给Javascript变量即可:

<script>    var values = @Html.Raw(Json.Enpre(Model.Values));</script>

编辑

这是更完整的示例。由于我没有足够的上下文信息,因此本示例将假定一个控制器

Foo
,一个动作
Bar
和一个视图模型
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.Enpre(Model.Locations));</script>

从错误消息的外观来看,似乎您正在混合使用不兼容的类型(例如

Ported_LI.Models.Locatio‌​n
MyApp.Models.Location
),因此,概括地说,请确保从控制器操作端发送的类型与从视图接收的类型匹配。特别是对于此样本,
newFooBarModel
在控制器
@model MyApp.Models.FooBarModel
视图中进行匹配。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号