MVC方法接收到null值



我正试图将控制台应用程序中的两个参数传递给ASP.NET控制器中的一个方法
当我尝试执行此操作时,参数会不断接收空值。

这是客户端上的代码

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:44331/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Dictionary<string, string> data = new Dictionary<string, string>
{

{ "user12",u},
{ "pass12",p},
};
List<Dictionary<string, string>> x = new List<Dictionary<string, string>>();
x.Add(data);
HttpResponseMessage response = client.PostAsJsonAsync("Home/Receiver", x).Result;
if (response.IsSuccessStatusCode)
{
Console.WriteLine("success!!");            
}

其中up是用户在控制台应用程序运行时定义的参数。

这是我想将参数传递到的方法的代码

[HttpPost]  
public void Receiver(string user12, string pass12) 
{
MessageBox.Show("user is " + user12 +"and pass is"  + pass12);
}

基本上,我想将参数up从客户端传递到方法中的参数user12pass12。然而,当我运行代码时,值为user12,pass12为null!!

当我尝试通过邮递员发送邮件请求时,它是有效的。

非常感谢您的帮助。

试试这个:

public static async Task GetData(string u, string p)
{
using (var client = new HttpClient())
{
var contentType = new MediaTypeWithQualityHeaderValue("application/json");
var baseAddress = "https://localhost:44331";
var api = "/Home/Receiver";
client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Add(contentType);
var data = new Dictionary<string, string>
{

{ "user12",u},
{ "pass12",p},
};
var jsonData = JsonConvert.SerializeObject(data);
var contentData = new StringContent(jsonData, Encoding.UTF8, "application/json");
var response = await client.PostAsync(baseAddress + api,contentData);

if (response.IsSuccessStatusCode)
{
var stringData = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<object>(stringData);
}
}
}

这是你的程序

public class Program
{
static async Task Main(string[] args)
{
var u="user";
var p="password";
await GetData(u,p);
Console.WriteLine("finished");

}
public static async Task GetData(string u, string p)
{
...code above
}

}

并修复你的动作

添加型号类

public class Model
{
public string User12 { get; set; }
public string Pass12 { get; set; }
}

并更正动作标头

public void Receiver(Model model) 
{
MessageBox.Show("user is " + model.User12 +"and pass is"  + model.Pass12);
}

相关内容

最新更新