작성
·
207
답변 2
0
안녕하세요.개발자park입니다.
[Q1.붙여주신 링크가 안열리네요 ㅠㅠ]
[A]
링크가 아닙니다.
아래 요청으로 테스트해보라는 의미였습니다.
/test?testdata=abcdef&testdata=abc
[Q2string[]? datas = Request.Query["datas"];]
[A]
이는 Get방식으로 요청시 얻을 때 사용되며
질문하신[HttpPost]처럼 post방식에서 얻을 경우
Request.Form["datas"];
으로 얻어주시면 됩니다.
감사합니다.
0
안녕하세요.개발자park입니다.
아래코드의 string[]? testdata처럼 배열로 선언해주시면 가능합니다.
코드(MVC아님):
app.Run(async (context) =>
{
string[]? testdata = context.Request.Query["testdata"];
await context.Response.WriteAsync($"{testdata[0]} {testdata[1]}");
});
위에서는 간단하게 제가 {testdata[0]} {testdata[1]}이렇게 적었지만
배열의 길이를 얻어서 for문을 돌려주시면 되겠습니다.
요청형태:
https://localhost:7102/test?testdata=abcdef&testdata=abc
감사합니다.
붙여주신 링크가 안열리네요 ㅠㅠ
음... 그리고 제가 어제 간단하게 실험(?)을 해봤는데요.
Index.html
@{
ViewData["Title"] = "View";
}
<h1>View</h1>
<form action="/home/onPost" method="post">
<input type="text" name="datas" />
<input type="text" name="datas" />
<input type="text" name="datas" />
<input type="submit" name="Submit" />
</form>
HomeController.cs
using Microsoft.AspNetCore.Mvc;
namespace HelloASP.Controllers
{
public class HomeController : Controller
{
[HttpPost]
public string OnPost()
{
string[]? datas = Request.Query["datas"];
Console.WriteLine(datas);
string results = "";
if (datas != null)
{
foreach (string data in datas)
{
results += data;
}
}
return results;
}
public IActionResult Index()
{
return View();
}
}
}
이렇게 하고 중단점을 찍어봤는데요.
아무 텍스트를 입력하고 제출버튼을 눌렀을 때 datas에 아무것도 안들어오더라구요..
혹시 제가 뭘 잘못한게 있을까요?
오 get 요청으로 바꿔주니까 잘 들어오네요!!
답변 감사합니다!! Post 방식에서 얻는 경우까지 잘 배웁니다!