c# - 在 asp.net mvc3 中使用 JsonResult 操作的用例是什么?

标签 c# asp.net-mvc json asp.net-mvc-3 c#-4.0

在 ASP.NET MVC 3 应用程序中通常什么时候使用 JsonResult 操作?

通常从哪里调用 JsonResult;来自另一个 Action 或 html 中呈现的 Action 链接?

你能给我一些你想要 json 而不是典型 View 的例子吗?

最佳答案

比方说,您希望使用基于对另一个字段的选择的值列表来填充 jQuery 自动完成,因此您无法确定页面加载时的数据。我通常会在 $.ajax 调用中调用一个操作方法,然后返回一个项目数组来填充自动完成。

例如,这是我的 jQuery,一个函数用于调用,另一个函数被调用以使用接收到的数据填充自动完成:

$(function() {
    $.ajax({
            url: '@Url.Action("GetHomes", "Account")',
            type: "POST",
            datatype: "json",
            success: function (data) {
                if (data.Success || data.Success == null) {
                    WireUpHomesData(data);
                } else {
                    ShowErrorDialog();
                }
            }
        });

    ShowDialog();
});

function WireUpHomesData(data) {
    var homes = new Array();

    for (var i = 0; i < data.length; i++) {
        homes[i] = { label: data[i].HomeName, text: data[i].HomeId, icon: data[i].HomeIcon, desc:data[i].HomeAddress };
    }
    $("#home").autocomplete({
            source: homes,
            select: function (event, item) {
                homeUrl = '@Url.Action("Site", "Sites")/' + item.item.text;
            }
        }).data("autocomplete")._renderItem = function (ul, item) {
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append("<a><span class='" + item.icon + "'/><span class='fs-ui-autocomplete-home'>" + item.value + "</span><br>" + item.desc+ "</a>")
            .appendTo(ul);
    }; 
    $(".ui-autocomplete").addClass("fs-ui-autocomplete");
}

这是我的 Controller :

public JsonResult GetHomes()
{
    return Json(RequiresAclAttribute.HomesForUser());
}

下面是所调用方法的方法签名:

public IEnumerable<HomeInfo> HomesForUser()

为了清楚起见,这里是 HomeInfo 类:

public class HomeInfo
{
    public string HomeId { get; set; }
    public string HomeName { get; set; }
    public string DisplayName { get; set; }
    public string HomeAddress { get; set; }
    public string HomeIcon { get; set; }
}

关于c# - 在 asp.net mvc3 中使用 JsonResult 操作的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10625203/

相关文章:

json - 带有 GeoJson 的传单 MarkerCluster

java - 在 Jackson Custom Deserializer 中读取跳过的 child

android - 改造 2 : Handling dynamic JSON response

c# - 将对象反序列化为 MongoDB C# 驱动程序的接口(interface)

c# - ASP.NET MVC 5 - 具有属性路由和动态 Controller 和操作方法的自定义 URL

asp.net-mvc - UserVoice 的客户反馈替代方案?

c# - 根据下拉框选择隐藏/显示表单

c# - 打开 .exe 文件时 openFileDialog DialogResult 总是显示 NONE

c# - 如何使用 Moq 模拟 StackExchange.Redis ConnectionMultiplexer 类?

c# - 任务调度器(Task.Factory)和控制线程数