【问题标题】:Trying to return asp.net mvc JSONResult with VB.Net尝试使用 VB.Net 返回 asp.net mvc JSONResult
【发布时间】:2009-01-15 01:56:28
【问题描述】:

我正在尝试从 LINQ2SQL 返回一条记录作为 JsonResult,以通过 jquery ajax 更新我的视图页面。我将在下面发布我的代码。当我通过调试器跟踪它时,控制器中的函数被调用并返回一条记录。我认为我的 Jquery 检索 JSONResult 可能有问题。有什么想法吗?

查看:

<a href="#" onclick="getProject(<%=project.ID%>)"><img src="<%=project.ThumbPath%>" alt="<%=project.Title%>" /></a>

控制器:

   Function DisplayProjectAjax(ByVal id As Integer) As JsonResult
        Dim project = From p In db.Projects Where p.ID = id
        Return Json(project)
    End Function

jquery:

<script type="text/javascript">
    function getProject(id) {
        $(document).ready(function() {
            $.getJSON("/Portfolio/DisplayProjectAjax/" + id,
          {},
          function(data) {
              $("#Title").Text(data.Title);
          });
        }); 
    }

【问题讨论】:

    标签: jquery asp.net-mvc vb.net json


    【解决方案1】:

    试试:

    $("#Title").text(data.Title);
    

    $("#Title").html(data.Title);
    

    注意大小写...此外,Firebug 之类的内容也会有所帮助。您可以在“网络”和“控制台”选项卡中查看您的所有请求,并非常轻松地调试您的 Javascript。

    【讨论】:

    • 我尝试了这两个建议,但仍然没有更新。我还检查了 Firebug,响应是正确的 JSON。 #Title 元素是一个

      。还有其他建议吗?感谢您的帮助。

    【解决方案2】:

    您的查询结果是一个 IEnumerable,它可能被序列化为一个 Project 对象数组,即使只有一个。我的 VB 语法可能不好,但选择了所选对象的 First()。

    return JsonResult( person.First() );
    

    我想你也需要@JD Conley 的修复。

    【讨论】:

    • 今晚回家后我会试一试。我确实尝试过 return JsonResult(person.Single()) 但这没有用,不过我一定会尝试一下,谢谢!
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多