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....