如何解决如何使用ASP.NET MVC将许多具有相同属性的表单发送到Controller?
我正在编写鞋类系统,在这种情况下,我要添加每双鞋和库存的大小:
我的控制器:
[HttpPost]
public ActionResult TallasAgregar(TallaViewModel viewModel)
{
var talla = viewModel.Talla;
_tallaRepository.AddSinGuardar(talla);
var detalletalla = new DetalleTalla()
{
ProductoId = viewModel.Ids,Stock = viewModel.DetalleTalla.Stock,TallaId = talla.Id
};
_tallaRepository.DetalleSinGuardar(detalletalla);
_tallaRepository.Guardar();
return RedirectToAction("DetallesProducto",new { id = viewModel.Ids });
}
我的ViewModel:
public class TallaViewModel
{
public Talla Talla { get; set; } = new Talla();
public Producto Producto { get; set; } = new Producto();
public DetalleTalla DetalleTalla { get; set; } = new DetalleTalla();
public int Ids { get; set; }
}
查看:
<div class="card-body">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Talla</label>
@Html.TextBoxFor(m => m.Talla.NombreTalla,new { @class = "form-control",@placeholder = "Talla" })
@Html.ValidationMessageFor(m => m.Talla.NombreTalla,"",new { @class = "text-danger" })
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label>Stock Inicial</label>
@Html.TextBoxFor(m => m.DetalleTalla.Stock,@placeholder = "Stock Inicial" })
@Html.ValidationMessageFor(m => m.DetalleTalla.Stock,new { @class = "text-danger" })
</div>
</div>
</div>
</div>
我的代码可以正常工作并插入数据库...但是我想像这样向控制器发送许多具有相同属性的表单:
我不知道如何将具有相同属性的几种形式(如列表或字典)转换为控制器,这样在viewModel中会很累又乏味:
public Talla Talla2 { get; set; } = new Talla();
public Talla Talla3 { get; set; } = new Talla();
public Talla Talla4 { get; set; } = new Talla();
public Talla Talla6 { get; set; } = new Talla();
public DetalleTalla DetalleTalla2 { get; set; } = new DetalleTalla();
public DetalleTalla DetalleTalla3{ get; set; } = new DetalleTalla();
public DetalleTalla DetalleTalla4 { get; set; } = new DetalleTalla();
public DetalleTalla DetalleTalla6 { get; set; } = new DetalleTalla();
并在剃须刀视图中:
@Html.TextBoxFor(m => m.Talla.NombreTalla,@placeholder = "Talla" })
@Html.TextBoxFor(m => m.Talla2.NombreTalla,@placeholder = "Talla" })
@Html.TextBoxFor(m => m.Talla3.NombreTalla,@placeholder = "Talla" })
and so on...
我如何简化或解决这个问题?我认为,我应该使用列表并将其发送给控制器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。