Html.Actionlink выполняется, если затем блокировать в поле зрения

Я новичок в C#, и мне интересно, можно ли использовать команду @Html.ActionLink для выполнения блока кода в том же виде?

Так, например:

//bootstrap tab button 1
<@Html.ActionLink("Community", "", new {id="Community"}, new {@class= "nav-link active" }, new {data-toggle="tab"})

//bootstrap tab button 2
<@Html.ActionLink("Health", "", new {id="Health"}, new {@class= "nav-link" }, new {data-toggle="tab"})



<div id="Community"> //some code here </div>

<div id="Health"? //some code here </div>

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

Не уверен, что это возможно с помощью команды Actionlink, или, возможно, есть лучший / более простой / простой способ выполнить эти задачи.

Обновить:

Попытка решения ниже, и не было радости, поэтому я включаю весь мой код, чтобы помочь объяснить более подробно.

EventCalendarController.cs

using iehp.EventCalendar.Models;
using Sitecore;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Mvc.Controllers;
using System.Linq;
using System.Web.Mvc;

namespace iehp.Controllers
{
    public class EventCalendarController : SitecoreController
    {
        public ViewResult EventCalendarCtrl()
        {

            //read in config file & get parentGuid value
            var parentGuidValue = Sitecore.Configuration.Settings.GetSetting("eventCalendarFolderGuid");

            //init Sitecore db 
            Database database = Context.Database;

            var model = new EventViewModel();
            model.Item = database.GetItem(parentGuidValue);
            model.Children = model.Item.Children.ToList();

            return View("/Views/Components/EventCalendarCtrl.cshtml", model);
        }
    }
}

EventCalendarCtrlModel.cs

используя Sitecore.Data.Items; using System.Collections.Generic;

namespace iehp.EventCalendar.Models
{
    public class EventViewModel
    {
        public Item Item { get; set; }
        public List<Item> Children { get; set; }
    }
}

EventCalendarCtrl (частичное представление)

    @model iehp.EventCalendar.Models.EventViewModel

<div class="col-12"><h4>Upcoming Events</h4></div>
<div class="col-12 text-right"><a href="#" class="moreEvents">load more >> </a></div>

<div class="col-24">
    <ul id="eventsTab" class="nav nav-tabs nav-fill">
        <li class="nav-item">
            @Html.ActionLink("Community", "", new { id = "Community" }, new { @class = "nav-link" + @ViewBag.Tab == "Community" ? " active" : "" })
        </li>
        <li class="nav-item">
            @Html.ActionLink("Health", "", new { id = "Health" }, new { @class = "nav-link" + @ViewBag.Tab == "Health" ? " active" : "" })
        </li>
    </ul>
</div>

Community.cshtml (вид)

@using Sitecore.Data.Fields
@using Sitecore.Data.Items
@using Sitecore.Mvc
@using Sitecore.Resources.Media
@model iehp.EventCalendar.Models.EventViewModel

@{
    ViewBag.Tab = "Community";
}
@Html.Partial("EventCalendarCtrl")

<div id="Community" class="card-deck">
    @foreach (var child in Model.Children)
    {
        Item item = Sitecore.Context.Item;
        ImageField imgField = ((ImageField)child.Fields["Image"]);

        <div class="card" style="margin-right:20px;">
            <img class="card-img-top" src="@MediaManager.GetMediaUrl(imgField.MediaItem)" />
            <div class="card-body">
                <p class="card-text">@Html.Sitecore().Field("Description", child)</p>
                <p class="date-time"><strong>Event Date:</strong> @Html.Sitecore().Field("Event Date", child)</p>
            </div>
        </div>
    }
</div>

Спасибо!

1 ответ

Использование частичного просмотра было бы что-то вроде этого

_CommunPage.cshtml:

 @model iehp.EventCalendar.Models.EventViewModel

<div class="col-12"><h4>Upcoming Events</h4></div>
<div class="col-12 text-right"><a href="#" class="moreEvents">load more >> </a></div>

<div class="col-24">
    <ul id="eventsTab" class="nav nav-tabs nav-fill">
         <li class="@(ViewBag.Tab == "Community" ? "nav-item active" : "nav-item")">
            @Html.ActionLink("Community", "", new { id = "Community" }, new { @class = "nav-link")
        </li>
         <li class="@(ViewBag.Tab == "Health" ? "nav-item active" : "nav-item")">
            @Html.ActionLink("Health", "", new { id = "Health" }, new { @class = "nav-link")
        </li>
    </ul>
</div>

Community.cshtml:

@{
    ViewBag.Title = "Community Page Tile";
    ViewBag.Tab = "Community";
}
@Html.Partial("_CommunPage")

Html for the Community page....

Health.cshml:

@{
    ViewBag.Title = "Health Page Tile";
    ViewBag.Tab = "Health";
}
@Html.Partial("_CommunPage")

Html for the Health page....
Другие вопросы по тегам