少し調べてみましたが、これに対する適切な解決策が見つかりませんでした。
私がやろうとしているのは、そのようなページに HTML.Action を持つことです
Html.Action("Calendar", "GlobalShared")
アクション「Calendar」内で、従来のカレンダー コントロールの 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」というイベントを接続したい場合、コントローラーでそれを行うことができるからです。ビューページを汚染することなく、ビューで同じことを行うことはできません。