【问题标题】:OnPost for Razor PageRazor 页面的 OnPost
【发布时间】:2020-07-09 18:50:42
【问题描述】:

我正在尝试将我的 MVC 转换为剃须刀页面。

这是我的 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”

我可以知道如何解决这个问题吗?我不确定我应该用什么来代替member

这个词

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-web-api razor razor-pages


    【解决方案1】:

    在 .net core post async 中,httpcontent 参数包含请求正文。您应该像这样格式化您将要提交的数据;

    var content = new StringContent(JsonConvert.SerializeObject(member), UnicodeEncoding.UTF8, "application/json");
    var postTask = client.PostAsync("Member", content);
    

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 2021-06-18
      • 1970-01-01
      • 2020-10-08
      • 2020-08-19
      • 2021-02-02
      • 1970-01-01
      • 2019-08-02
      • 2020-06-17
      相关资源
      最近更新 更多