Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Form POST正在返回空模型_C#_Razor - Fatal编程技术网

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
最后有null
CardDetails
UserDetails
谢谢,但是我如何创建对象客户端?是在视图中调用组件吗?@JoeDefill没错。在这里,您执行两个调用,创建一个新的信用卡,并用模型中的字段填充这两个字段?我找不到任何人做同样的事情。我意识到我可能误解了最初的问题。当您说它返回null时,“it”是什么?对不起,参数
CreditCard CreditCard
的结果是null
CardDetails
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
}