我正在使用.NET Core中的XDocument生成日历,并将其作为标记助手传递给视图。
我想使每一天都可单击,并将每一天的日期作为ID传递给另一个控制器中的操作。是否可以使用XDocument或仅生成原始HTML?
理想情况下,我想做的是这样:每天@Html.ActionLink("", "ActionName", "ControllerName", new { date = d })
。
我尝试将<div>
和class="day"
包装在<a>
作为d
的{{1}} XAttribute中-使日期变为可点击状态并传递DateTime在网址中,但我不知道如何调用特定操作。
href
答案 0 :(得分:0)
假设此代码在控制器中,则可以通过调用controllerbase的Url属性(实现IUrlHelper)来设置锚的href。
例如:new XAttribute(“ href”,Url(“ ActionName”,“ ControllerName”,new {date = d}))
答案 1 :(得分:0)
我可以通过使用LinkGenerator实现这一目标:
public class CalendarTagHelper : TagHelper
{
private readonly LinkGenerator _linkGenerator;
public CalendarTagHelper(LinkGenerator linkGenerator)
{
_linkGenerator = linkGenerator;
}
然后在href
XElement的a
中调用此方法,并传递d
作为参数:
private string GetDayUrl(DateTime date)
{
return _linkGenerator.GetPathByAction("Day", "Home", values: {date = date});
}