[英]Post data with files using ASP.NET Core MVC to api (ASP.NET Core Web API)
[英]ASP.NET MVC 5 Web API not accepting View Model on POST from MVC ASP.NET Core solution
我有兩種解決方案,一種是MVC5 Web應用程序,另一種是充當基本Web窗體的MVC core 2.2 Web應用程序。
我正在嘗試將Webform數據(使用ViewModel)發布到MVC5 Web應用程序API。
編碼
MVC5 Web應用程序/ API上的POST方法
// POST
[HttpPost]
public IHttpActionResult Post([FromBody] WebFormDataVM personData)
{
// logic here
}
MVC核心網絡表單(發布到上面)
[HttpPost]
public async Task<ActionResult> Create(PersonVM personData)
{
var path = "api/WebForm/Post";
var url = new Uri("http://localhost:60291/");
var client = new HttpClient();
client.BaseAddress = url;
var response = await client.PostAsJsonAsync(path, personData);
return RedirectToAction("Index");
}
問題
發布viewmodel
, POST
方法API參數(WebformDataVM personData)
始終為null
。
我嘗試了完全相同的設置,但是使用了MVC5項目/解決方案而不是核心,並且可以正常運行。
我嘗試過的
發布一個字符串而不是視圖模型對象
從.net核心項目中刪除HTTPS(通過項目選項)
任何幫助將不勝感激。
請嘗試使用此解決方案
[HttpPost]
public async Task<ActionResult> Create(PersonVM personData)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:60291/api/WebForm/Post");
var response = await client.PostAsJsonAsync("personData", personData);
return RedirectToAction("Index");
}
}
[HttpPost]
public IHttpActionResult Post(WebFormDataVM personData)
{
// code
}
您應該將對象序列化為json
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var url ="yourUrl" // http://localhost:60291/api/WebForm/Post
var model=yourObject; //PersonVM
HttpResponseMessage response = await client.PostAsync(url, new StringContent(JsonConvert.SerializeObject(yourObject),Encoding.UTF8, "application/json"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.