вот кнопка на частичном просмотре,
<button type="button" name="btnid" id="bparentid" value="@item.Itemid " class="btn btn-success" onclick="alert(@item.Itemid)">Select</button>
Просто чтобы проверить, содержит ли оно значение, я включил функцию оповещения об бритве, и я хочу, чтобы значение кнопки передавалось в родительское представление при нажатии кнопки, используя эту скрытую форму ввода в родительском представлении
<input asp-for="Itemid" type="hidden" value=" @item.Itemid" />
Подробнее:
У меня есть две таблицы для записи детей и их родителей по отдельности,
Вот модель
public class Children
{
[Key]
public int ChildID { get; set; }
[Required] [StringLength(50)]
public string FirstName { get; set; }
[ForeignKey("Parentid")]
public virtual Parent Parent { get; set; }
}
public class Parent
{
[Key]
public int Parentid { get; set; }
public string FullName { get; set; }
public virtual IEnumerable<Children> Children { get; set; }
}
А вот контроллер метода Create для публикации новой дочерней записи с родительской информацией:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("ChildID,FirstName")] Children children, int existingParentid,
[Bind("Parentid,FullName")] Parent parent, bool existingparent)
{
if (ModelState.IsValid)
{
if (existingparent)
{
children.Parentid = existingParentid;
_context.Add(children);
await _context.SaveChangesAsync();
return View(children);
}else
_context.Add(children);
await _context.SaveChangesAsync();
_context.Add(parent);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(children);
}
Вот метод контроллера для модального частичного представления
public async Task<IActionResult> ModalAction()
{
var MyDbContext = _context.Children.Include(C => C.Parent);
return PartialView(await MyDbContext.ToListAsync());
}
А вот представление для метода Create
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="FirstName" class="control-label"></label>
<input asp-for="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
@Html.ActionLink("Select Existing Parent", "ModalAction", "Children", null, new { @class = "btn btn-flat margin",
data_target = "#searchparent", data_toggle = "modal" })
<input asp-for="Parentid" type="hidden" value=" " />
<div class="modal fade" id="searchparent">
<div class="modal-dialog">
<div class="modal-content">
</div>
</div>
</div>
<div class="form-group">
<label asp-for="Parent.FullName" class="control-label"></label>
<input asp-for="Parent.FullName" class="form-control" />
<span asp-validation-for="Parent.FullName" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
</div>
Вот частичное модальное представление
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Search for Parent data table </h4>
</div>
<div class="modal-body">
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
<button type="button" name="bparentid" id="bparentid" value="@item.ChildID" class="btn btn-block btn-success btn-xs"
onclick="alert(@item.ChildID)">
Select
</button>
</td>
</tr>
}
</tbody>
</table>
</div>
Вопрос:
Как передать значение @item.ChildID
из частичного представления в представление Create, которое затем передаст его как скрытое значение в контроллер создания