У меня есть два класса моделей Деньги и MoneyType .
денежный объект содержит Список TypeMoney свойство
В моем представлении со строго типизированными деньгами, это основное представление индекса, здесь есть html-таблица для списка объектов типа Money
Я хочу добавить объект TypeMoney в качестве строки шаблона редактора в таблицу динамически с помощью jquery, поэтому, когда пользователь хочет заполнить одну строку, он нажимает на кнопку AddMoney , тогда в этой строке отображается только одна строка. Таблица. (пользователь заполняет данные типа денег). и он снова нажимает на кнопку AddMoney , когда он хочет заполнить информацию в другой строке и т. д.
для этого я реализовал шаблон редактора и создал частичное представление _create.cshtml для этого шаблона редактора, чтобы я мог добавить этот фрагмент в виде строки
пока он не отправит все контроллеру: денежный объект данные с его коллекцией объектов typeMoney данные.
В действии index контроллера я передал модель " money " в представление Index
Моя проблема заключается в том, что когда я отправляю эту форму, список денежных объектов типа отправляется нулевым на контроллер
Как я могу добавить тип денежного объекта в коллекцию шаблонов Editor и отправить эту коллекцию без нуля в контроллер
извините за множество деталей, потому что я хочу, чтобы все было ясно и понятно. если есть вещь не чище. скажи пожалуйста.
модель классов
public class Money{
public int StructureId {get; set;}
// public enum Quarter:byte{ FirstQuarter = 1, SecondQuarter=2,
// ThirdQuarter=3, FourthQuarter=4}
public Querter Quarter{get; set;}
public int Year {get; set;}
public List<TypeMoney> MoneyTypes {get; set;}
}
public class TypeMoney{
//public enum Type:byte{ Bill= 1, Coin=2}
public Type Type{get; set;}
//public enum Value = {one = 1, tow=2, five=5, ten=10, Etc};
public Value Value{get; set;}
public int Number{get; set;}
}
код контроллера
public ActionResult Index()
{
ViewBag.StructureId= new SelectList(GetStructures(), "Id", "Name");
ViewBag.Year = new SelectList(GetYears());
ViewBag.Quater = new SelectList(Enum.GetValue(typeof(Quarter));
return View()
}
//partial view for Editor template
public PartialViewResult _Create(Money money)
{
return PartialView();
}
//save money with list of typeMoney objects
[HttpPost]
public ActionResult Index(Money money)
{
//code for save in database
}
Вот мой редактор шаблонов
@model ProjectName.TypeMoney
<tr class="insertMoneyTr">
<td>
@Html.DropDownListFor(model => model.Type, null, "--selectionnez--",
new { @class = "typeMoney form-control" })
</td>
<td>
@Html.DropDownListFor(model => model.Valeur, null, new { @class =
"valueMoney form-control" })
</td>
<td>
@Html.TextBoxFor(model => model.Numbre, new { @class = "nombre form-
control" })
</td>
<td>
<button class="deleteMoney btn btn-danger glyphicon glyphicon-
remove">
</button>
</td>
</tr>
Частичное представление _create.cshtml
@model ProjectName.TypeMoney
@Html.EditorForModel();
Код jquery для отображения частичного представления в виде строки, добавленной в таблицу
//the id of button that append editor template is AddMoney
$("#AddMoney").click(function (e) {
e.preventDefault();
$.ajax({
url: "Money/_Create",
type: 'Get',
dataType: 'html',
success: function (result) {
$("#listEspecesDiv tbody").append(result);
}
});
});