C# 文本区域未正确绑定到.net core中的模型

C# 文本区域未正确绑定到.net core中的模型,c#,asp.net,asp.net-core,asp.net-core-mvc,C#,Asp.net,Asp.net Core,Asp.net Core Mvc,我有一个在.net核心web应用程序中具有多个字段的模型 该模型绑定到一个视图,该视图使用asp作为标记帮助器来呈现隐藏输入、文本输入、选择列表和文本区域 问题 发布到服务器时,除文本区域外,所有输入都已正确绑定。这总是以空的形式出现 更奇怪的是,如果我在渲染视图之前为text area属性指定了一个值,该值将按预期显示在文本区域中(而不是奇怪的位),并且在发布到服务器时,该值将被发回。但是,如果我尝试更改该值,则模型绑定中仍会拾取原始值,尽管Chrome在网络工具中显示新值是发布的值 还有其他

我有一个在.net核心web应用程序中具有多个字段的模型

该模型绑定到一个视图,该视图使用asp作为标记帮助器来呈现隐藏输入、文本输入、选择列表和文本区域

问题

发布到服务器时,除文本区域外,所有输入都已正确绑定。这总是以空的形式出现

更奇怪的是,如果我在渲染视图之前为text area属性指定了一个值,该值将按预期显示在文本区域中(而不是奇怪的位),并且在发布到服务器时,该值将被发回。但是,如果我尝试更改该值,则模型绑定中仍会拾取原始值,尽管Chrome在网络工具中显示新值是发布的值

还有其他人经历过类似的事情吗?我(又)是个白痴吗

下面是我的代码的子集:

渲染视图:

public IActionResult Review()
{
    var requestVm = new Request();

    requestVm.AdditionalComments = "This was set in the model before rendering the view and should be overwritten.";
    return View(requestVm);
}
Html:

正如你所看到的,那里没有什么特别的事情

谢谢你的帮助

标记

请在post方法中使用Bind(Include=string)属性,并提及所有属性名称,包括丢失的属性名称。这演示了属性的使用:

[HttpPost]
public IActionResult Review([Bind(Include = "AdditionalComments,other properties")] Request requestVm)
{
    // Some logic in here to save to db etc..
    return RedirectToAction("Thank_You");
}

如果这不起作用,请告诉我。

正如我怀疑的那样,代码实际上没有任何问题

取而代之的是,在各种设计更改之前,通过项目早期阶段的一个部分将相同属性的遗留隐藏输入添加到页面中。它解释了为什么要在加载时设置值,而文本中的更新永远不起作用,因为模型只是绑定到找到的属性的第一个实例


必须是简单的事情。。希望这将有助于发现自己处于类似情况的其他人。

您能展示元素吗?我现在编辑了这个问题,将其包括在内……感谢您的建议,最终从未使用过该方法,因为有很多属性需要绑定,而且感觉它真的不必要。。。
[HttpPost]
public IActionResult Review(Request requestVm)
{
    // Some logic in here to save to db etc..
    return RedirectToAction("Thank_You");
}
[HttpPost]
public IActionResult Review([Bind(Include = "AdditionalComments,other properties")] Request requestVm)
{
    // Some logic in here to save to db etc..
    return RedirectToAction("Thank_You");
}