/// <summary> /// Initialisiert eine neue Instanz der <see cref="T:System.Object" />-Klasse. /// </summary> protected MvcDynamicListItemAdder(DynamicListItemModel dynamicListItemModel, HtmlHelper listHtmlHelper) { Require.NotNull(listHtmlHelper, "listHtmlHelper"); Require.NotNull(dynamicListItemModel, "dynamicListItemModel"); _listHtmlHelper = listHtmlHelper; _originalTemplateInfo = listHtmlHelper.ViewData.TemplateInfo; _dynamicListItemModel = dynamicListItemModel; _viewType = _listHtmlHelper.ViewDataContainer.GetType(); _viewTextWriterStack = GetPropertyValue <Stack <TextWriter> >(_listHtmlHelper.ViewDataContainer, _viewType, "OutputStack"); _viewTextWriter = GetPropertyValue <TextWriter>(_listHtmlHelper.ViewDataContainer, _viewType, "Output"); _itemAdderTextWriter = new TemporaryTextWriter(_viewTextWriter.Encoding); TemplateInfo templateInfo = new TemplateInfo(); templateInfo.HtmlFieldPrefix = dynamicListItemModel.ListExpressionText + "[" + Key + "]"; _indexTemplateInfo = new TemplateInfo(); _indexTemplateInfo.HtmlFieldPrefix = dynamicListItemModel.ListExpressionText + "[" + Key + "]"; ViewDataDictionary viewDataDictionary = new ViewDataDictionary(); ViewContext viewContext = new ViewContext(listHtmlHelper.ViewContext.Controller.ControllerContext, listHtmlHelper.ViewContext.View, viewDataDictionary, listHtmlHelper.ViewContext.TempData, new TemporaryTextWriter(listHtmlHelper.ViewContext.Writer.Encoding)); _itemHtmlHelper = new HtmlHelper <TListItem>(viewContext, new ViewPage(), new RouteCollection()); _itemHtmlHelper.ViewData.TemplateInfo = templateInfo; _itemHtmlHelper.ViewContext.ViewData.TemplateInfo = templateInfo; ((HtmlHelper)_itemHtmlHelper).ViewData.TemplateInfo = templateInfo; _originalTextWriter = listHtmlHelper.ViewContext.Writer; }
/// <summary> /// Initialisiert eine neue Instanz der <see cref="T:System.Object" />-Klasse. /// </summary> public MvcDynamicListItemAdder(HtmlHelper htmlHelper, DynamicListItemModel dynamicListItemModel, TListItem listItem) : this(dynamicListItemModel, htmlHelper) { _listItem = listItem; _itemHtmlHelper.ViewData.Model = listItem; _itemHtmlHelper.ViewData.ModelMetadata.Model = listItem; BeginDynamicListItem(); }
/// <summary> /// Initialisiert eine neue Instanz der <see cref="T:System.Object"/>-Klasse. /// </summary> protected MvcDynamicListItem(string key, DynamicListItemModel dynamicListItemModel, HtmlHelper listHtmlHelper) { Require.NotNull(listHtmlHelper, "listHtmlHelper"); Require.NotNull(dynamicListItemModel, "dynamicListItemModel"); Require.NotNullOrWhiteSpace(key, "key"); Key = key; _listHtmlHelper = listHtmlHelper; _dynamicListItemModel = dynamicListItemModel; _originalTemplateInfo = listHtmlHelper.ViewData.TemplateInfo; ViewDataDictionary viewDataDictionary = _listHtmlHelper.ViewData; ViewContext viewContext = new ViewContext(listHtmlHelper.ViewContext.Controller.ControllerContext, listHtmlHelper.ViewContext.View, viewDataDictionary, listHtmlHelper.ViewContext.TempData, listHtmlHelper.ViewContext.Writer); TemplateInfo templateInfo = new TemplateInfo(); _itemHtmlHelper = new HtmlHelper <TListItem>(viewContext, new ViewPage(), new RouteCollection()); _itemHtmlHelper.ViewData.TemplateInfo = templateInfo; _itemHtmlHelper.ViewContext.ViewData.TemplateInfo = templateInfo; ((HtmlHelper)_itemHtmlHelper).ViewData.TemplateInfo = templateInfo; ((HtmlHelper)_itemHtmlHelper).ViewContext.ViewData.TemplateInfo = templateInfo; foreach (string modelStateKey in _listHtmlHelper.ViewData.ModelState.Keys) { _itemHtmlHelper.ViewData.ModelState.Add(modelStateKey, _listHtmlHelper.ViewData.ModelState[modelStateKey]); ((HtmlHelper)_itemHtmlHelper).ViewData.ModelState.Add(modelStateKey, _listHtmlHelper.ViewData.ModelState[modelStateKey]); } templateInfo.HtmlFieldPrefix = dynamicListItemModel.ListExpressionText + "[" + Key + "]"; /*Das ist der Key für den Dictionary-Eintrag*/ _itemHtmlHelper.ViewContext.Writer.Write("<div " + _dynamicListItemModel.GetHtmlAttributes() + ">"); //_itemHtmlHelper.ViewContext.Writer.Write("<input name=\"" + templateInfo.HtmlFieldPrefix + "\" type=\"hidden\" value=\"" + Key + "\">"); /*Damit die Werte für die Dictionary-Values gebunden werden können, muss value davor.*/ templateInfo.HtmlFieldPrefix = dynamicListItemModel.ListExpressionText + "[" + Key + "]"; }
public MvcDynamicListItemAdder(HtmlHelper htmlHelper, DynamicListItemModel dynamicListItemModel) : this(dynamicListItemModel, htmlHelper) { BeginDynamicListItem(); }
public MvcDynamicListItem(HtmlHelper htmlHelper, string key, DynamicListItemModel dynamicListItemModel) : this(key, dynamicListItemModel, htmlHelper) { }
/// <summary> /// Initialisiert eine neue Instanz der <see cref="T:System.Object"/>-Klasse. /// </summary> public MvcDynamicListItem(HtmlHelper htmlHelper, string key, DynamicListItemModel dynamicListItemModel, TListItem listItem) : this(key, dynamicListItemModel, htmlHelper) { _listItem = listItem; _itemHtmlHelper.ViewData.Model = listItem; }