OnPost для бритвы - PullRequest
       68

OnPost для бритвы

1 голос
/ 29 марта 2020

Я пытаюсь преобразовать мою 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 так 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);
    }

Но в этой строке на странице Razor

var postTask = client.PostAsync("Member", member);

Показывает ошибку

Невозможно преобразовать из 'Models.Member' в ' System. Net .Http.Httpcontent '

Могу ли я узнать, как решить эту проблему? Я не уверен, что я должен заменить слово member

1 Ответ

2 голосов
/ 29 марта 2020

In. net core post asyn c, параметр httpcontent содержит тело запроса. Вам следует отформатировать данные, которые вы собираетесь отправить, следующим образом:

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