public static Task <IViewComponentResult> GetAsync(string resName) { var commMsg = $"<!-- {resName} not found ! -->"; IViewComponentResult empty = new HtmlContentViewComponentResult(new HtmlString(commMsg)); return(Task.FromResult <IViewComponentResult>(empty)); }
public IViewComponentResult Invoke() { IHtmlContent content = new HtmlString("<b>Component2 (HtmlContentViewComponentResult)</b>"); HtmlContentViewComponentResult result = new HtmlContentViewComponentResult(content); // HtmlContentViewComponentResult - класс, для указания фрагмента разметки // Для данного типа результата не предусмотрен метод в базовом классе // Результат не будет кодироваться // Если метод Invoke возвращает IHtmlContent будет использоваться тип результата HtmlContentViewComponentResult return(result); }
public void Execute_WritesData_PreEncoded() { // Arrange var buffer = new MemoryStream(); var viewComponentContext = GetViewComponentContext(Mock.Of <IView>(), buffer); var result = new HtmlContentViewComponentResult(new HtmlString("<Test />")); // Act result.Execute(viewComponentContext); buffer.Position = 0; // Assert Assert.Equal("<Test />", new StreamReader(buffer).ReadToEnd()); }
private async Task <IViewComponentResult> ResolveEmbedded(IScreenMetaData model, object routeValues = null) { var currentRequestQueryString = Request.Query.ToExpandoObject(); return(await WhenInsideStepData()); async Task <IViewComponentResult> WhenInsideStepData() { IViewComponentResult result; if (string.IsNullOrEmpty(model.ContainedFlowType)) { result = new HtmlContentViewComponentResult(new StringHtmlContent(string.Empty)); } else if (string.IsNullOrEmpty(model.ContainedFlowHandler)) { throw new ApplicationException($"property {nameof(IScreenMetaData.ContainedFlowHandler)} should contain a value when there is a contained flow"); } else { var stepViewCustomizations = new { ContainerModelProperty_FlowHandler = model.ContainedFlowHandler } .MergeObjects(currentRequestQueryString).ToExpandoObject(); result = await _currentViewResolver.Execute(new CurrentViewRequest <IViewComponentResult> { FlowHandler = model.ContainedFlowHandler, BuildResultOnFlowNotFound = () => Task.FromResult <IViewComponentResult>( new HtmlContentViewComponentResult(new StringHtmlContent("Not authorized"))), ViewParameters = stepViewCustomizations, OnAddModelError = (memberName, errorMessage) => ModelState.AddModelError(memberName, errorMessage), OnBuildView = (bvi => { var viewPath = $"{bvi.FlowType}/Views/{bvi.ViewName}"; return(Task.FromResult <IViewComponentResult>(View(viewPath, bvi.ScreenModel))); }), ResolveAsComponentOnly = true }); } return(result); } }