Я загружаю частичный вид в моем приложении C#/MVC4 с намерением обновить модель с помощью основы корзины покупок.Почему мой модем не обновляется?
Частичный просмотр обновляется, но когда я выбираю следующий элемент и отправляю, модель просмотра не содержит данные, которые были нажаты в первый раз.
У меня есть класс для хранения данных:
public class Selection
{
public class AllItems _AllItems { get; set; }
public int nCounter { get; set; }
public class Resource _Resource { get; set; }
}
Мой главный вид имеет этот АЯКС форму, чтобы отправить данные:
@using (Ajax.BeginForm("Index_AddItem", new AjaxOptions { UpdateTargetId = "AddItemList" }))
Тогда это класс я работаю в частичный вид:
public class AllItems
{
public IEnumerable<SelectListItem> NewItemList { get; set; }
public int ID { get; set; }
public string ItemName { get; set; }
public DateTime dtAddUntil { get; set; }
[Display(Name = "Add Item")]
public List<MyApp.ViewModels.Item> AddItemList = new List<MyApp.ViewModels.Item>();
}
Все отображает ok на главном экране и частичном изображении.
(_AddItems.cshtml)
@model IEnumerable<MyApp.ViewModels.Item>
@{
ViewBag.Title = "Added Items";
}
<h2>Items to be Added</h2>
<table>
<tr>
<th>Item Name</th>
<th>Added until</th>
</tr>
@if (Model != null)
{
foreach (var item in Model)
{
<tr>
<td>Html.DisplayFor(model=>item.ItemName)</td>
<td>Html.DisplayFor(model=>item.EndDate)</td>
</tr>
}
}
</table>
Но когда я добавить элемент с помощью:
[HttpPost]
public ActionResult Index_AddItem(Resource viewModel, string Text, string Value)
{
Value = Value.Trim();
List<Item> _items = new List<Item>();
string szItemName = GetItem(Convert.ToInt32(Value));
string test = Request.Form.GetValues("cbxPerm")[0].ToString();
Item NewItem = new Item();
NewItem.ItemName = szItemName;
_items.Add(NewItem);
return PartialView("_AddItems", _items);
}
модель отправляется функции пуст.
Первый элемент добавляет большой, и я вижу его в частичном представлении.
Но последующие добавления удаляют ранее добавленный элемент.
Когда я помещаю точку останова в функцию AddItem и смотрю на модель; в этом ничего нет.
Почему модель не возвращается повторно?
Не должна ли модель быть отправлена на частичный вид, чтобы ее можно было получить при отправке? – DaBlue
Нокаутом пород. Благодаря; Я понятия не имел, что существует. – DaBlue
Вы можете опубликовать viewModel взад и вперед между клиентом и сервером, но это лишние затраты на связь. Таким образом, используя Knockout вы можете делать все на клиенте и просто держать все в синхронизации, отправляя только необходимые данные вверх и вниз. – 3dd