我试着研究了一下,但还没有找到合适的解决方案。
我想要做的是在这样的页面中有一个 HTML.Action
Html.Action("Calendar", "GlobalShared")
在动作“日历”内部,我需要返回传统日历控件的html结果
public ActionResult Calendar(
String ID,
String CssClass,
int CellSpacing,
int CellPadding,
String BorderWidth,
String ShowGridLines,
String ShowTitle,
String DayNameFormat
)
{
System.Web.UI.WebControls.Calendar cal = new System.Web.UI.WebControls.Calendar();
cal.ID = "MyCalendar";
cal.CssClass = "month-view";
cal.CellSpacing = 0;
cal.CellPadding = -1;
cal.BorderWidth = 0;
cal.ShowGridLines = false;
cal.ShowTitle = false;
cal.DayNameFormat = System.Web.UI.WebControls.DayNameFormat.Full;
}
我怎样才能做到这一点?顺便说一句,我使用 HTML.Action 是因为我读到它返回一个 html 字符串,这是正确的还是我应该做一些其他的方式?
谢谢
编辑。在控制器中尝试此操作之前,我在视图 .cshtml 中尝试了以下代码并且它可以工作,但我更喜欢将代码移动到控制器中
@{
System.Web.UI.WebControls.Calendar cal = new System.Web.UI.WebControls.Calendar();
cal.ID = "MyCalendar";
cal.CssClass = "month-view";
cal.CellSpacing = 0;
cal.CellPadding = -1;
cal.BorderWidth = 0;
cal.ShowGridLines = false;
cal.ShowTitle = false;
cal.DayNameFormat = System.Web.UI.WebControls.DayNameFormat.Full;
cal.RenderControl(new HtmlTextWriter(Html.ViewContext.Writer));
}
编辑#2。我想在控制器中使用它的原因是因为如果将来我想连接一个事件说“DayRender”,我可以在控制器中完成它。在不污染视图页面的情况下,我不能在视图中做同样的事情。