У меня есть следующая форма, где я добавляю элементы в список и обновляю результирующую таблицу. так вот код, который я в настоящее время:@ Ajax.ActionLink поля формы сообщения
View (сильно типизированных):
@using (Ajax.BeginForm("AddService", "Manager",
new AjaxOptions { UpdateTargetId = "servicePartial",
HttpMethod = "Post",
LoadingElementId = "loading" }))
{
<input type="submit" value="Add New" />
<div class="widget-content table-container" id="servicePartial">
@Html.Partial("_Services", Model)
</div>
}
Частичное:
@model Project.Model.ServicesViewModel
<table id="demo-dtable-02" class="table table-striped">
<thead>
<tr>
<th>Service</th>
<th>Price</th>
<td class="action-col">Actions</td>
</tr>
</thead>
<tbody id="services">
@if (Model != null)
{
if (Model.Services != null)
{
if (Model.Services.Count > 0)
{
for (int i = 0; i < Model.Services.Count; i++)
{
<tr>
<th>@Model.Services[i].name</th>
<th>@Model.Services[i].price</th>
<td class="action-col">
@Html.HiddenFor(x=>x.Services[i].name)
@Html.HiddenFor(x=>x.Services[i].price)
@Html.HiddenFor(x=>x.Services[i].serviceId)
@Ajax.ActionLink(" X ", "Appointment", "Manager",
new{ model = Model,
id = @Model.Services[i].serviceId },
new AjaxOptions
{
UpdateTargetId = "servicePartial",
LoadingElementId = "loading",
HttpMethod="Post"
})
</td>
</tr>
}
}
}
}
</tbody>
</table>
ViewModel:
public class ServicesViewModel
{
public List<Service> Services { get; set; }
}
Прямо сейчас, сообщение назад через кнопку отправки Ajax.Beginform
работает, и я могу отправить назад модель и обновить службы (добавить один к ней) и вернуть ее.
Моя проблема заключается в том, что я хотел бы иметь возможность удалить службу из списка. для этого я думал, что буду использовать Ajax.Actionlink
, и он отправит обратно с идентификатором. проблема в том, что он возвращает только идентификатор, а не модель.
Теперь оглядываясь на него. По-видимому, невозможно отправить текущую модель обратно в действие с помощью Ajax.Actionlink
, как бы вы, парни, справились с этим?
Я думал, что буду умным и воспользуюсь перегрузкой Ajax.Actionlink
и добавлю new{ model = Model, id = @Model.Services[i].serviceId }
к ней, но ее нет.
В ViewModel имеется много других данных (для пространства, которое я выбрал из вышеприведенного кода), и очень нецелесообразно отправлять все эти данные по одному через вышеупомянутую перегрузку.
Как вы собираетесь удалить товар? Можете ли вы PLZ опубликовать метод действий? – Sharun