我有一个模型,该模型具有很少的属性和其他对象的列表。
模型报价:
汽车
日期
bla bla
OfferRaw:
PartCode
PartDescription
价格
因此,在我的视图中,当用户提出要约时,他必须填写要约的所有数据,但是我如何从用户那里获取已填写的信息来填充OfferRaws的数据,然后将其添加到列表中模型的
public OfferCreateViewModel()
{
this.Raws = new List<OfferRawCreateViewModel>();
}
public string CarMake { get; set; }
public string CarModel { get; set; }
public string CarRegistrationNumber { get; set; }
public string CarVinNumber { get; set; }
public string CarOwner { get; set; }
public ICollection<OfferRawCreateViewModel> Raws { get; set; }
答案 0 :(得分:0)
我的理解是,您要在创建要约时添加多个Raw,然后将所有数据传递给您的控制器。这可以借助js来完成。您可以在下面参考我的简单演示。
1。我的模型
public class OfferRawCreateViewModel
{
public string PartCode { get; set; }
public string PartDescription { get; set; }
}
public class OfferCreateViewModel
{
public OfferCreateViewModel()
{
this.Raws = new List<OfferRawCreateViewModel>();
}
public string CarModel { get; set; }
public string CarOwner { get; set; }
public ICollection<OfferRawCreateViewModel> Raws { get; set; }
}
2。查看
@model WebApplication1.Models.OfferCreateViewModel
<form asp-action="Create" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="CarModel" class="control-label"></label>
<input asp-for="CarModel" class="form-control" />
<span asp-validation-for="CarModel" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="CarOwner" class="control-label"></label>
<input asp-for="CarOwner" class="form-control" />
<span asp-validation-for="CarOwner" class="text-danger"></span>
</div>
<div class="form-group" id="item-list">
<a href="#" id="add">Add</a>
<br />
<input type="text" asp-for="Raws" class="items" name="Raws[0].PartCode" />
<input type="text" asp-for="Raws" class="items" name="Raws[0].PartDescription" />
</div>
<input type="submit" value="Create" class="btn btn-default" />
</form>
@section Scripts {
<script>
$(function () {
$("#add").click(function (e) {
e.preventDefault();
var i = ($(".items").length) / 2;
var n = '<br /><input type="text" class="items" name="Raws[' + i + '].PartCode" />' +
'<input type="text" class="items" name="Raws[' + i + '].PartDescription" />'
$("#item-list").append(n);
});
});
</script>
}
3.Controller
[HttpPost]
public async Task<IActionResult> Create(OfferCreateViewModel model)