C# Form POST正在返回空模型
我正试图通过一个表单帖子将一个模型保存到我的数据库中。以下是模型的外观:C# Form POST正在返回空模型,c#,razor,C#,Razor,我正试图通过一个表单帖子将一个模型保存到我的数据库中。以下是模型的外观: public class CreditCard { public CardDetails cardDetails { get; set; } public UserDetails userDetails { get; set; } } public class CardDetails { public string CardNumber { get; set; } } public class
public class CreditCard
{
public CardDetails cardDetails { get; set; }
public UserDetails userDetails { get; set; }
}
public class CardDetails
{
public string CardNumber { get; set; }
}
public class UserDetails
{
public string Name { get; set; }
}
这是显示表单的视图,我正在为信用卡中的每个对象使用视图组件:
@model CreditCard
<form asp-controller="Card" asp-action="Save" method="post">
<button type="submit" name="save" class="btn bg-blue"></button>
@await Component.InvokeAsync("CardDetails", Model.cardDetails)
@await Component.InvokeAsync("UserDetails", Model.userDetails)
</form>
有人能找出这里出了什么问题吗?您向服务器发送的正文与设置为使用的正文不同
Save
将CreditCard
作为参数,但首先发送CardDetails
对象,然后发送UserDetails
对象
您需要两个不同的Save()
,一个接受CardDetails
,另一个接受UserDetails
,或者在发送之前构建CreditCard
对象客户端 您向服务器发送的正文与设置为使用的正文不同
Save
将CreditCard
作为参数,但首先发送CardDetails
对象,然后发送UserDetails
对象
您需要两个不同的Save()
,一个接受CardDetails
,另一个接受UserDetails
,或者在发送之前构建CreditCard
对象客户端 请使用Chrome开发者工具(网络选项卡)并向我们显示发布到服务器的有效负载。请使用Chrome开发者工具(网络选项卡)并向我们显示发布到服务器的有效负载。谢谢,但我如何创建对象客户端?是在视图中调用组件吗?@JoeDefill没错。在这里,您执行两个调用,创建一个新的信用卡,并用模型中的字段填充这两个字段?我找不到任何人做同样的事情。我意识到我可能误解了最初的问题。当您说它返回null时,“it”是什么?对不起,参数CreditCard CreditCard
最后有nullCardDetails
和UserDetails
谢谢,但是我如何创建对象客户端?是在视图中调用组件吗?@JoeDefill没错。在这里,您执行两个调用,创建一个新的信用卡,并用模型中的字段填充这两个字段?我找不到任何人做同样的事情。我意识到我可能误解了最初的问题。当您说它返回null时,“it”是什么?对不起,参数CreditCard CreditCard
的结果是nullCardDetails
和UserDetails
@model CardDetails
<div class="form-group">
@Html.EditorFor(model => model.CardNumber)
</div>
public async Task<ActionResult> Save(CreditCard creditCard)
{
// do stuff but creditCard.cardDetails and creditCard.userDetails are both null
}