Если у меня есть следующий код (РЕДАКТИРОВАТЬ: Извините, если мне неясно, я хочу инкапсулировать следующее (забыть о представлении его вызова), чтобы я мог делать другие вещи в ActionResult
) :
public ActionResult ModelBased(string[] items, PostedItems postedItems) {
var model = new ItemsViewModel();
var selectedItems = new List<Item>();
var postedItemIDs = new string[0];
if (postedItems == null) postedItems = new PostedItems();
if (items!= null && items.Any()) {
postedCityIDs = items;
postedItems.ItemIDs = items;
}
if (postedItems.ItemIDs != null && postedItems.ItemIDs.Any()) {
postedItemIDs = postedIems.ItemIDs;
model.WasPosted = true;
}
if (postedItemIDs.Any())
selectedItems = ItemRepository.GetAll()
.Where(x => postedItemIDs.Any(s => x.Id.ToString().Equals(s))).ToList();
model.AvailableItems = ItemRepository.GetAll();
model.SelectedItems = selectedItems;
model.PostedItems = postedItems;
return View(model);
}
Как я могу использовать его в других Действиях в моем контроллере без необходимости копировать / вставлять.Я пытался сделать приватный метод с кодом.Но я застрял на:
Либо неверный вызов в методе действия: private void Item (Item item) {//copied code from above}
затем вызов Item(item);
в действии;или
Это как-то связано с (string[] items, PostedItems postedItems)
, что я делаю неправильно;или
Что-то совершенно другое, что я не правильно делаю.
Любые примеры будут высоко оценены.
РЕДАКТИРОВАТЬ: Приведенный выше код работает с CheckBoxList.Это один конкретный CheckBoxList.Но я хочу иметь возможность использовать его в других представлениях без необходимости копировать / вставлять код в другой ActionResults
.Просто позвонить по номеру ActionResult
не получится, потому что я планирую заняться другими делами.В частности, у меня есть код для мастеров в каждом ActionResult
, например:
if ((nextButton != null) && ModelState.IsValid)
return RedirectToAction("EMailConfirm");
return View("EMail/BasicDetails", myData);
, которые возвращают определенные представления, поэтому вызов только ActionResult
не будет работать, если я что-то не пропустил.