如何使用 YAHOO connect 和 json 向控制器发送数据

发布于 2024-09-28 21:47:55 字数 1117 浏览 4 评论 0原文

我无法使用 YAHOO 连接库将数据发送到 MVC 控制器。

参数查询和过滤器均为NULL。问题出在哪里?

   // --- JavaScript --- //
    var callbacks = {
        // Successful XHR response handler 
        success: function (o) {
            var messages = [];
            // Use the JSON Utility to parse the data returned from the server 
            try {
                messages = YAHOO.lang.JSON.parse(o.responseText);
            }
            catch (x) {
                alert("JSON Parse failed!");
                return;
            }
            handleSearchResult(messages, query, filter);
        },
        argument: { query: "flowers", filter: "home" } 
    };

    // Make the call to the server for JSON data 
    YAHOO.util.Connect.asyncRequest("GET", "Search/GetTopics", callbacks);

    // --- C# --- //
    //Controller
    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult GetTopics(string query, string filter)
    {
       // query and filter are NULL <- problem here // 
       // ...do my stuff... //
       return Json(Search(query, filter), JsonRequestBehavior.AllowGet);
    }

谢谢你! :)

I can not send data to MVC controller using YAHOO connect library.

Parameters query and filter are NULL. Where is the problem?

   // --- JavaScript --- //
    var callbacks = {
        // Successful XHR response handler 
        success: function (o) {
            var messages = [];
            // Use the JSON Utility to parse the data returned from the server 
            try {
                messages = YAHOO.lang.JSON.parse(o.responseText);
            }
            catch (x) {
                alert("JSON Parse failed!");
                return;
            }
            handleSearchResult(messages, query, filter);
        },
        argument: { query: "flowers", filter: "home" } 
    };

    // Make the call to the server for JSON data 
    YAHOO.util.Connect.asyncRequest("GET", "Search/GetTopics", callbacks);

    // --- C# --- //
    //Controller
    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult GetTopics(string query, string filter)
    {
       // query and filter are NULL <- problem here // 
       // ...do my stuff... //
       return Json(Search(query, filter), JsonRequestBehavior.AllowGet);
    }

Thank you! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱*していゐ 2024-10-05 21:47:55

您必须有可能发送参数:

  1. 使用 GET 动词:在这种情况下,您需要在查询字符串中传递参数:

    YAHOO.util.Connect.asyncRequest('GET', 
        'Search/GetTopics?query=foo&filter=bar', 回调);
    
  2. 使用 POST 动词:在这种情况下,您可以使用 postData 参数

    YAHOO.util.Connect.asyncRequest('POST', '搜索/GetTopics', 
        回调,'query=foo&filter=bar');
    

在第一种情况下,实际上建议使用 Url 助手来生成地址,以确保值正确进行 url 编码:

var url = '<%= Url.Action("GetTopics", "Search", new { query = "foo", filter = "bar" }) %>';
YAHOO.util.Connect.asyncRequest('GET', url, callbacks);

第二种情况也是如此。确保正确编码值。

You have to possibilities to send parameters:

  1. Use GET verb: In this case you need to pass the parameters in the querystring:

    YAHOO.util.Connect.asyncRequest('GET', 
        'Search/GetTopics?query=foo&filter=bar', callbacks);
    
  2. Use POST verb: In this case you could use the postData parameter

    YAHOO.util.Connect.asyncRequest('POST', 'Search/GetTopics', 
        callbacks, 'query=foo&filter=bar');
    

In the first case it is actually recommended to use Url helpers to generate the address to make sure values are properly url encoded:

var url = '<%= Url.Action("GetTopics", "Search", new { query = "foo", filter = "bar" }) %>';
YAHOO.util.Connect.asyncRequest('GET', url, callbacks);

The same is true for the second case. Make sure to properly encode values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文