如何将值传递给 . Angular 中的网络控制器
how to pass values to . net controller in Angular
我正在尝试的是从打字稿向控制器传递一个参数。但它没有传递给方法。
下面是我的打字稿代码,
multiCountryConfig() {
var multiCountry = "Test";
this.http.get('/Home/MultiCountryConfiguration', {
params: {
multiCountry: multiCountry,
}
}).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
下面是我的homecontroller方法代码,
[HttpGet]
public IActionResult MultiCountryConfiguration(string multiCountry)
{
var key = "test";
var value = "en-gb";
CookieOptions options = new();
options.Expires = DateTime.Now.AddHours(1);
HttpContext.Response.Cookies.Append(key, value, options);
return Ok("created");
}
不知道对不对。请有人指导我。谢谢。
使用get方法时,可以通过多种方式发送参数。
- 简单的方法是在 URL 中添加参数,如下所示:
multiCountryConfig() {
var multiCountry = "Test";
const URL = `/Home/MultiCountryConfiguration?multiCountry=${multiCountry}`
this.http.get(URL).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
- 另一种方法是使用 HTTPModule 中的参数
multiCountryConfig() {
let params = new HttpParams();
params = params.append('_page', 1);
params = params.append('_limit', 10);
const multiCountry = "Test";
this.http.get("/Home/MultiCountryConfiguration", {params: params}).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
但是您在 URL 中使用的路径似乎不完整,您可能需要添加域才能正常工作并请求资源。您的 .net 服务必须在特定端口和 IP 地址上 运行,例如:http://localhost:8080/Home/MultiCountryConfiguration
。请检查您的 Web 服务在哪里 运行 并添加正确的路径。
[HttpGet]
public IActionResult MultiCountryConfiguration([FromBody]string multiCountry)
{
var key = "test";
var value = "en-gb";
CookieOptions options = new();
options.Expires = DateTime.Now.AddHours(1);
HttpContext.Response.Cookies.Append(key, value, options);
return Ok("created");
}
- 编辑 #1:修复代码部分
What I am trying is to pass a parameter to the controller from typescript. But it's not passing to method.
Getting the same 404 error. GET https://localhost:44335/Home/MultiCountryConfiguration?multiCountry=Test 404
要解决此问题,请尝试修改如下操作方法。
[HttpGet("/Home/MultiCountryConfiguration")]
public IActionResult MultiCountryConfiguration([FromQuery]string multiCountry)
{
//...
此外,请确保您的后端站点托管在 https://localhost:44335
,而不是其他端口或 http。
注意:您的 Angular 前端代码似乎没问题,它可以帮助发出 http 请求并通过查询字符串传递数据。如果您的后端路由正常,它应该会按预期工作。
来自前端的请求
后端操作方法
我正在尝试的是从打字稿向控制器传递一个参数。但它没有传递给方法。
下面是我的打字稿代码,
multiCountryConfig() {
var multiCountry = "Test";
this.http.get('/Home/MultiCountryConfiguration', {
params: {
multiCountry: multiCountry,
}
}).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
下面是我的homecontroller方法代码,
[HttpGet]
public IActionResult MultiCountryConfiguration(string multiCountry)
{
var key = "test";
var value = "en-gb";
CookieOptions options = new();
options.Expires = DateTime.Now.AddHours(1);
HttpContext.Response.Cookies.Append(key, value, options);
return Ok("created");
}
不知道对不对。请有人指导我。谢谢。
使用get方法时,可以通过多种方式发送参数。
- 简单的方法是在 URL 中添加参数,如下所示:
multiCountryConfig() {
var multiCountry = "Test";
const URL = `/Home/MultiCountryConfiguration?multiCountry=${multiCountry}`
this.http.get(URL).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
- 另一种方法是使用 HTTPModule 中的参数
multiCountryConfig() {
let params = new HttpParams();
params = params.append('_page', 1);
params = params.append('_limit', 10);
const multiCountry = "Test";
this.http.get("/Home/MultiCountryConfiguration", {params: params}).subscribe(result => {
console.log(result)
}, error => {
console.log(error)
});
}
但是您在 URL 中使用的路径似乎不完整,您可能需要添加域才能正常工作并请求资源。您的 .net 服务必须在特定端口和 IP 地址上 运行,例如:http://localhost:8080/Home/MultiCountryConfiguration
。请检查您的 Web 服务在哪里 运行 并添加正确的路径。
[HttpGet]
public IActionResult MultiCountryConfiguration([FromBody]string multiCountry)
{
var key = "test";
var value = "en-gb";
CookieOptions options = new();
options.Expires = DateTime.Now.AddHours(1);
HttpContext.Response.Cookies.Append(key, value, options);
return Ok("created");
}
- 编辑 #1:修复代码部分
What I am trying is to pass a parameter to the controller from typescript. But it's not passing to method.
Getting the same 404 error. GET https://localhost:44335/Home/MultiCountryConfiguration?multiCountry=Test 404
要解决此问题,请尝试修改如下操作方法。
[HttpGet("/Home/MultiCountryConfiguration")]
public IActionResult MultiCountryConfiguration([FromQuery]string multiCountry)
{
//...
此外,请确保您的后端站点托管在 https://localhost:44335
,而不是其他端口或 http。
注意:您的 Angular 前端代码似乎没问题,它可以帮助发出 http 请求并通过查询字符串传递数据。如果您的后端路由正常,它应该会按预期工作。
来自前端的请求
后端操作方法