[英]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"];
原因是HttpContext
將Request
定義為實例屬性。 唯一的公共靜態屬性是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.