Я новичок в MVC (и веб-разработке). В настоящее время, используя MVC 5 для моего приложения.ASP.NET MVC Index action вызывается каждый postback
У меня есть веб-приложение и пользовательский интерфейс, как на приведенном ниже снимке экрана. В принципе, это одностраничное приложение, и мне нужно загрузить сетку внизу, исходя из выбора пользователя с помощью переключателей вверху. Если нажать «Последние», последние данные пользователя привязаны к сетке. Аналогичным образом, если исторический выбор, исторические данные привязаны к одной и той же сетке.
Мои действия в HomeController.cs - это что-то вроде ниже.
public ActionResult Index()
{
var viewModel = new ViewModel();
List users = GetLatestUsers();
viewModel.Users = users;
return View(viewModel);
}
[HttpPost]
public ActionResult Filter(ViewModel postData)
{
List users = GetHistoricUsers();
viewModel.Users = users;
return View(viewModel);
}
Просто чтобы быть более сложным, как просили в комментариях, я привязки к сетке, на мой взгляд что-то вроде этого
@Html.Grid(Model).Columns(columns =>
{
/* Adding not mapped column, that renders body, using inline Razor html helper */
columns.Add()
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(d =>
@<b>
@Html.ActionLink("Edit", "Index")
</b>);
/* Adding "OrderID" column: */
columns.Add(o => o.OrderID)
.Titled("Number")
.SetWidth(100);
/* Adding "Vip customer" column: */
columns.Add(o => o.Customer.IsVip)
.Titled("Vip customer")
.SetWidth(150)
.RenderValueAs(o => CustomRenderingOfColumn(o));
}).SetRowCssClasses(item => item.Customer.IsVip ? "warning" : string.Empty).WithPaging(15).Sortable().Filterable().WithMultipleFilters()
Теперь проблема я столкнулся это, если пользователь просматривает исторические данные, так как действия Filter
, я загружаю исторические данные в сетку. Если пользователь теперь переходит на следующую страницу с помощью управления разбиением на страницы в сетке, он запускает обратную передачу и, следовательно, выполняет действие индекса и всегда загружает последние данные. В идеале, я должен оставаться на одной странице и показывать следующие исторические данные, которые будут показаны на стр. 2.
Просьба помочь мне справиться с этим сценарием.
FYI: Я использую Grid.Mvc для сетки данных и Bottrrap для элементов управления пользовательского интерфейса.
«привязанный к сетке» нуждается в расширении, чтобы этот вопрос имел смысл. – spender
@spender Я добавил пример того, как я привязываю его к просмотру и к сетке. Я также добавил гиперссылку на демонстрацию Grid.MVC в нижней части вопроса. Надеюсь, поможет. – utkarsh