我正在尝试将我的 MVC 转换为 razor 页面。
这是我的 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);
}
这是我到目前为止已转换为 Razor 页面的内容
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);
}
但是在 Razor 页面的这一行
var postTask = client.PostAsync("Member", member);
它向我显示了错误
无法从“Models.Member”转换为“System.Net.Http.Httpcontent”
我可以知道如何解决这个问题吗?我不知道应该用什么来代替“成员”这个词
在.net core post async中,httpcontent参数包含请求正文。您应该像这样格式化您要提交的数据;var content = new StringContent(JsonConvert.SerializeObject(member), UnicodeEncoding.UTF8, "application/json");
var postTask = client.PostAsync("Member", content);