簡體   English   中英

如何使用c#asp.net從URL獲取數據?

[英]How can I use c# asp.net to get data from url?

我正在嘗試獲取一些信息,這些信息是通過表單發送到我的c#asp.net后端中的angularJS的,我在這樣做時遇到了麻煩。

Visual Studio不允許我編譯,因為它說:

錯誤CS0120:非靜態字段,方法或屬性“成員”需要對象引用

那是我的控制器

public class SearchController : ApiController
{
    public string Get()
    {
        string test = HttpContext.Request.QueryString["txt_search"];
        return test;
    }

}

這是我在angularjs中得到的:

$scope.sendForm = function () {
    console.log($scope.model.search);
    $http({
        method: 'GET',
        url: '/api/search?txt_search=' + $scope.model.search
    })
    .then(function () {
        console.log('sucesso a executar o post');
    }, function () {
           console.log('Erro ao executar o post');
       });
};

如注釋中所建議,您應該只能夠更改方法定義並完全跳過此方法:

public string Get(string txt_search)
{
    return txt_search;
}

另外,要引用當前請求,我相信您需要使用以下內容(請注意添加.Current ):

string test = HttpContext.Current.Request.QueryString["txt_search"];

原因是HttpContextRequest定義為實例屬性。 唯一的公共靜態屬性是Current ,它返回HttpContext的實例,您可以通過該實例到達Request

歡迎使用Stack Overflow,

您的Angular代碼正確

您需要在服務器端傳遞參數以收集txt_search

這里是:

[HttpGet]
[Route("/api/search")]
public string mySearchMethod(string txt_search)
{
    //something here with txt_search
    return "OK";
}

上述兩種解決方案都可以使用,但是對於使用asp.net Web API和路由器的另一種方法,您也可以按照以下方法進行操作

在您的Angular代碼中,簡單地通過搜索,如下所示

```

$scope.sendForm = function () {
    console.log($scope.model.search);
    $http({
        method: 'GET',
        url: '/api/search/'+ $scope.model.search
    })
    .then(function () {
        console.log('sucesso a executar o post');
    }, function () {
           console.log('Erro ao executar o post');
       });
};

```

通知url: '/api/search/'+ $scope.model.search

並如下更改Action方法

```

[HttpGet]
[Route("/api/search/{txt_search}")]
public string mySearchMethod(string txt_search)
{
    //something here with txt_search
    return "OK";
}

```

通過這樣做,您不必擔心在路由[Route("/api/search/{txt_search}")]提及的參數txt_search的名稱,您將獲得同一參數中的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM