如何解决如何使用asp-for生成忽略父项的名称属性?
例如,我的视图中有这个:
<div class="form-group">
<label asp-for="Departamento.Departamento" class="control-label"></label>
<input name="Departamento" class="form-control" />
<span asp-validation-for="Departamento.Departamento" class="text-danger"></span>
</div>
我的名字是=“ Departamento”,因为在我的模型中我有字符串Departamento .. 我想使用asp-for =“ Departamento”,但是由于我的模型是两个模型的组合,因此我无法直接使用,它将是asp-for =“ Departamentos.Departamento” ...这样我得到的错误文本和不会插入数据库...有什么帮助吗?
编辑:我的模型:
public class Departamentos
{
public int Id { get; set; }
public string Departamento { get; set; }
public string Autor { get; set; }
public int Ordem { get; set; }
public DateTime Criado { get; set; }
public List<AreasDepartamentos> Areas { get; set; }
}
```
public class AreasDepartamentos
{
public int AreasId { get; set; }
public Areas Area { get; set; }
public int DepartamentoId { get; set; }
public Departamentos Departamento { get; set; }
}
My controller post :
´´´
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Departamento,Autor,Ordem")] Departamentos departamentos,int[] areas)
{
List<AreasDepartamentos> areasLista = new List<AreasDepartamentos>();
foreach(var i in areas)
{
areasLista.Add(new AreasDepartamentos() { AreasId = i,DepartamentoId = departamentos.Id });
}
departamentos.Areas = areasLista;
departamentos.Criado = DateTime.Now;
if (ModelState.IsValid)
{
_context.Add(departamentos);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(departamentos);
}
´´´
解决方法
在您的情况下,您似乎只能收到Departamento
的名称。asp-for="Departamentos.Departamento"
会生成html:name="Departamentos.Departamento"
。仅通过Departmento
,您可以忽略使用[Bind(Prefix="Departamentos")]
在后端中创建父名称:
[HttpPost]
public IActionResult Test([Bind(Prefix = "Departamentos")] YourModel model)
{
return View();
}
注意:请确保asp-for中的数据是您的代码。您的代码使用asp-for="Departamento.Departamento"
,但您的描述是asp-for="Departamentos.Departamento"
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。