I am trying to convert my MVC to razor page.
This is my sample code for MVC
public ActionResult Register(Member member)
{
if (ModelState.IsValid)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseUrl);
var postTask = client.PostAsJsonAsync("Member", member);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
return RedirectToAction("Index", "Home");
}
}
}
return View(member);
}
This is what I have converted to Razor page so far
public IActionResult OnPost(Member member)
{
if (ModelState.IsValid)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseUrl);
var postTask = client.PostAsync("Member", member);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
return RedirectToPage("~/Index");
}
}
}
return Page(member);
}
But at this line at Razor page
var postTask = client.PostAsync("Member", member);
It shows me the error
Cannot convert from 'Models.Member' to 'System.Net.Http.Httpcontent'
May I know how to solve this? I'm not sure what am I supposed to replace the word member
In .net core post async, the httpcontent parameter contains the request body. You should format the data you're about to submit like this;
var content = new StringContent(JsonConvert.SerializeObject(member), UnicodeEncoding.UTF8, "application/json");
var postTask = client.PostAsync("Member", content);