Razor 页面的 OnPost

问题描述 投票:0回答:1

我正在尝试将我的 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参数包含请求正文。您应该像这样格式化您要提交的数据;
c# asp.net-mvc asp.net-core asp.net-web-api razor
1个回答
4
投票
var content = new StringContent(JsonConvert.SerializeObject(member), UnicodeEncoding.UTF8, "application/json"); var postTask = client.PostAsync("Member", content);


© www.soinside.com 2019 - 2024. All rights reserved.