我有一个表单,可以将我的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
属性现在为空。
我很困惑为什么会发生这种情况,因为我在其他地方有一个非常相似的表格可以传递模型。
答案 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>