Как я могу создать меню с вкладками в ASP.NET MVC?

Вы должны ввести приведение внутри обработчика событий click

MouseEventArgs me = (MouseEventArgs) e;
9
задан rene 10 March 2014 в 12:19
поделиться

4 ответа

Создание модели представления:

public class UserViewModel {
    public myApplication.Models.User User;

    public string PartialViewName;

    public PartialViewModelBase Tab;
}

Создание моделей представления для каждой вкладки, производных от PartialViewModelBase:

public abstract class PartialViewModelBase {
}

public class Tab1PartialViewModel : PartialViewModelBase {
    ...
}

public class TabNPartialViewModel : PartialViewModelBase {
    ...
}

Затем сделайте ваши представления и частичные представления строго типизированными:

Представление:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<UserViewModel>" %>

PartialViews:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Tab1PartialViewModel>" %>

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TabNPartialViewModel>" %>

Затем в вашем представлении вы можете использовать частичные представления как:

<% Html.RenderPartial(Model.PartialViewName, Model.Tab); %>

В действии вашего контроллера:

public ActionResult YourAction(string tab)
{
    // check if tab is valid !!!

    var model = new UserViewModel {
        User = new myApplication.Models.User();
        PartialViewName = tab;
        Tab = TabRepository.GetTabByName(tab);
        /*
         * or
         * Tabs = (new Dictionary<string, type> {
         *     {"Tab1", typeof(Tab1PartialViewName)},
         *     {"TabN", typeof(TabNPartialViewName)}
         *     })[tab];
         */
    };

    Return View(model);
}

Надеюсь, это поможет.

9
ответ дан 4 December 2019 в 20:24
поделиться

они, вероятно, используют вкладки пользовательского интерфейса jquery: http://docs.jquery.com/UI/Tabs

2
ответ дан 4 December 2019 в 20:24
поделиться

Судя по всему, ни одна из вкладок, кажется, ничего не раскрывает, не открывая ссылку и не просматривая HTML-код для нее, просто кажется, что они стилизованы так, чтобы выглядеть так, как они выглядят, и просто передайте определенные значения строки запроса.

Чтобы добиться того, чем вы кажетесь после, вам нужно будет захватить указанное значение строки запроса, если оно есть, и затем соответствующим образом отсортировать полученные данные.

0
ответ дан 4 December 2019 в 20:24
поделиться

Другим решением было бы создание настраиваемого маршрута (производного от RouteBase), который использует строку запроса для выбора другого действия. Каждое действие будет иметь отдельное представление, использующее главную страницу, содержащую общий контент для страницы.

Обычно у вас есть «UsersController» с действиями «stats», «prefs» и т. Д. Все выбираются пользовательским классом маршрута которые вы реализовали.

0
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: