Я создаю календарь с использованием XDocument в .NET Core и передаю его представлению в качестве помощника по тегам.
Я хотел бы сделать каждый день кликабельным и передавать дату каждого дня в качестве идентификатора для действия в другом контроллере. Возможно ли это с помощью XDocument или он может генерировать только сырой HTML?
В идеале я хотел бы сделать что-то вроде этого: @Html.ActionLink("", "ActionName", "ControllerName", new { date = d })
за каждый день.
Я попытался обернуть <div>
с class="day"
в <a>
XAttribute с d
в качестве href
- который превращает день кликабельным и передает DateTime в URL, но я не могу работать как вызвать конкретное действие.
var startDate = monthStart.AddDays(-(int)monthStart.DayOfWeek);
var dates = Enumerable.Range(0, 42).Select(i => startDate.AddDays(i));
foreach (var d in dates)
{
if (d.DayOfWeek == DayOfWeek.Sunday && d != startDate)
{
yield return new XElement("div",
new XAttribute("class", "w-100"),
String.Empty
);
}
var mutedClasses = "d-none d-inline-block bg-light text-muted";
yield return new XElement("div",
new XAttribute("class", $"day col p-2 border-top-0 text-truncate {(d.Month != monthStart.Month ? mutedClasses : null)}"),
new XElement("h6",
new XAttribute("class", "row align-items-center"),
new XElement("span",
new XAttribute("class", "date col-1"),
d.Day
),
new XElement("span",
new XAttribute("class", "col-1"),
String.Empty
)
),
GetEventHtml(d)
);
}