使用c#/asp.net模型绑定清除集合
是否可以使用模型绑定清除集合 示例模型类:使用c#/asp.net模型绑定清除集合,c#,asp.net-mvc,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core Mvc,是否可以使用模型绑定清除集合 示例模型类: public class TestModel { public String Name { get; set; } public List<String> Strings { get; set; } } 公共类测试模型 { 公共字符串名 { 获得;设置; } 公共列表字符串 { 获得;设置; } } 示例Html: <form> <
public class TestModel
{
public String Name
{
get; set;
}
public List<String> Strings
{
get; set;
}
}
公共类测试模型
{
公共字符串名
{
获得;设置;
}
公共列表字符串
{
获得;设置;
}
}
示例Html:
<form>
<input type="text" name="Name" value="New name" />
<input type="text" name="Strings[]" value="New str1" />
<input type="text" name="Strings[]" value="New str2"/>
<input type="text" name="Strings[]" value="New str3"/>
<input type="submit" />
</form>
和控制器代码:
public IActionResult Post()
{
var model = new TestModel() { Name = "Old name" };
model.Strings = new List<String>();
model.Strings.Add("Old str 1");
model.Strings.Add("Old str 2");
this.TryUpdateModelAsync(model);
}
public IActionResult Post()
{
var model=newtestmodel(){Name=“Old Name”};
model.Strings=新列表();
model.Strings.Add(“旧str 1”);
model.Strings.Add(“旧str 2”);
this.tryupdatemodelsync(model);
}
在这种情况下,TryUpdateModelAsync将同时更新名称和字符串,但是如果我想用TryUpdateModelAsync清除列表,该怎么办
将html更改为:
<form>
<input type="text" name="Name" valuye="New name" />
<input type="text" name="Strings" value="" />
<input type="submit" />
</form>
当然,将字符串更新为具有一个空/空值的列表,并且删除字符串的输入将保持旧列表的完整性(如预期的那样),但是是否有任何魔术可以清除该列表或将其设置为空?为什么要这样做?在您的操作方法中调用
List.Clear()
或过滤器不起作用的原因是什么?请修复您的标签,说明这是用于哪个框架。cshtml是什么样子的?你到底是如何绑定到文本框的?我相信这是一个足够好的问题“总结”。为什么我要用它来做什么?cshtml在html示例中…@LennartStoop我不确定是否理解您的问题,但是文本框绑定将在controllers方法中发生:tryupdatemodelsync()