.NET Core MVC表单传递具有null属性的模型

时间:2018-03-14 17:29:41

标签: c# razor asp.net-core asp.net-core-mvc

我有一个表单,可以将我的Encounter模型传递给我的CharacterController CreateCharacter操作方法。

以下是表格:

<form asp-action="CreateCharacter" asp-controller="Character" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#character-container">
    <button class="btn btn-default" type="submit">Create Chracter</button>
</form>

这是控制器方法:

public ActionResult CreateCharacter(Encounter encounter)
{
    Character character = new Character { Encounter = encounter };
    return PartialView("Add", character);
}

encounter的所有属性在它们不应该为空时为空。为了澄清,Encounter是表单所在视图的模型。在此视图中,我使用Name的{​​{1}}属性,它工作正常。但是,当我将模型传递给控制器​​时,Encounter属性现在为空。

我很困惑为什么会发生这种情况,因为我在其他地方有一个非常相似的表格可以传递模型。

1 个答案:

答案 0 :(得分:1)

没有数据提交给控制器。

该表单只有一个提交按钮。

它没有发送任何数据,因为没有输入字段来表示要发送的模型。

如果没有发送任何内容,则该操作将获得空值。

确保要发送的值与要发送的模型上的属性匹配。

<form asp-action="CreateCharacter" asp-controller="Character" data-ajax="true" 
        data-ajax-mode="replace" data-ajax-update="#character-container">

    <input type="hidden" name="propertyName" value="propertyValue">

    <!--
    <input ... />
    <input ... />
    <input ... />
    -->     

    <button class="btn btn-default" type="submit">Create Chracter</button>
</form>