Я пытаюсь связать элементы карты задания с моделью карты задания.
Я не полностью asp, как элементы могут быть сгенерированы либо для модели Jobcard, либо для модели JobcardItems, которая будет использоваться в функция сохранения.
Модель Jobcard: это модель, сгенерированная из базы данных с использованием Entity Framework
namespace Amax.Models
{
using System;
using System.Collections.Generic;
public partial class Jobcard
{
public long JCId { get; set; }
public Nullable<long> ClientId { get; set; }
public Nullable<long> ContactId { get; set; }
public string ContactNo { get; set; }
public string Email { get; set; }
public string VatNo { get; set; }
public Nullable<bool> SLA { get; set; }
public string Address { get; set; }
public Nullable<System.DateTime> TofOrder { get; set; }
public Nullable<System.DateTime> TofCompletion { get; set; }
public Nullable<long> ClientSigId { get; set; }
public string CSignature { get; set; }
public Nullable<System.DateTime> ClientSigDate { get; set; }
public Nullable<long> USigId { get; set; }
public string USignature { get; set; }
public string USigDate { get; set; }
public Nullable<int> StatusId { get; set; }
public List<JobCardItem> Item { get; set; }
}
}
Просмотр модели -> Просмотр созданной модели
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Amax.Models
{
public class ViewModel
{
public Jobcard Jobcard { get; set; }
public Client Client { get; set; }
public Contact Contact { get; set; }
public JobCardItem JobCardItem { get; set; }
public Status Status { get; set; }
public User Users { get; set; }
}
}
JobItems представление - это частичное представление для динамического добавления строк полей ввода для добавления элементов в карту задания
@using Amax.Models
<br />
<div class="row">
<div class="col-md-6 col-sm-6">
<div class="row">
<div class="col-md-4 col-sm-4">
<input class="form-control" type="text" id="UnitAmount" aname="UnitAmount" />
</div>
<div class="col-md-8 col-sm-8"> <textarea class="form-control" id="description_1"></textarea></div>
</div>
</div>
<div class="col-md-6 col-sm-6">
<div class="row">
<div class="col-md-5 col-sm-5"> <input class="form-control" id="unitprice_1" /></div>
<div class="col-md-5 col-sm-5"> <input class="form-control" id="total_1" /></div>
</div>
</div>
</div>
<br />
представление карты задания Представление, в котором поля динамически добавляются в элемент JobItems Div
...
<div class="row" id="JobItems">
@Html.EditorFor(model => model.Item)
</div>
...
@section Scripts{
<script type="text/javascript">
$('#btnAdd').on("click", function () {
event.preventDefault();
$.ajax({
async: true,
data: $('#Jobcard').serialize(),
type: 'POST',
url: '/Home/AddJobcardItem',
success: function (PartialView) {
$('#JobItems').append(PartialView);
}
});
});
$(function () {
var Styles = "";
$.ajax({
url: "/Content/bootstrap.css",
success: function (data) {
Styles = data;
console.log(Styles);
}
});
$("#btnSubmit").click(function () {
$('#Styles').val("<style>" + Styles + "</style>");
$('#ExportData').val($("#JobCard").html());
});
});
</script>
}
Функция сохранения в домашнем контроллере
[System.Web.Http.HttpPost]
public void SaveJobcard(Jobcard Jobcard, JobCardItem jobItems)
{
if (ModelState.IsValid)
{
try
{
var context = new DBModel();
context.Jobcards.Add(Jobcard);
context.SaveChanges();
}
catch (Exception ex)
{
}
return;
}
}