gpt4 book ai didi

html - 来自其他 Controller 的调用的 MVC : Get HTML string From Controller/Action,

转载 作者:行者123 更新时间:2023-11-28 03:03:53 26 4
gpt4 key购买 nike

我有一个 Controller :TestController.cs

public ActionResult Test()
{
return View();
}

public string TestHtml()
{
//Get Result of Test as HTML string
string HTMLString = "";

ActionResult AR = Test();
//Convert AR to HTML string

HTMLString = ConvertActionResultToHtml(AR);

//do something with HTMLString

return HTMLString;
}

Test() 函数有一个返回一段 HTML 的 View 。

当我调用 TestHtml() 函数时,我想获得相同的 HTML 但作为字符串,所以我需要函数“ConvertActionResultToHtml”。有没有类似的东西。

我知道有 MVC2mail 组件做同样的事情,将 View 呈现为电子邮件。

当它可以完成时,我希望有一个通用函数来实现它。喜欢:

public string GetHTMLFromControllerAction(string Controller, string Action) {
//This function returns the result of a controller action as HTML string
return ""; //
}

我想从另一个 Controller 调用上面的代码。

我尝试了以下代码: How to get view html and return to client side ,但无法从另一个 Controller 函数调用它。

希望有人可以提供帮助,或者可以给我任何关于其他解决方案的提示。

最佳答案

您可以使用这种方法:

第 1 步 - 您需要在 nugget 包 maneger 中安装 RazorEngine;

现在你可以使用这段代码了:

using System;
using System.IO;
using RazorEngine.Configuration;
using RazorEngine.Templating;

namespace Test.ActionAsHtml.Models
{
public class GetStringFromAction
{
private readonly static string _conventionFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Views");
private readonly IRazorEngineService _razorEngineService;

public GetStringFromAction()
{
var templateConfig = new TemplateServiceConfiguration
{
TemplateManager = new DelegateTemplateManager(controllerAndAction => File.ReadAllText(Path.Combine(_conventionFolderPath, controllerAndAction))),
DisableTempFileLocking = true,
CachingProvider = new DefaultCachingProvider(t => { })
};
_razorEngineService = RazorEngineService.Create(templateConfig);
}
public string GetHTMLFromControllerAction(string controller, string action, object model)
{
//C# 6
var actionController = $"{controller}/{action}.cshtml";
//var actionController = string.Format("{0}/{1}.cshtml",controller,action);
return _razorEngineService.RunCompile(actionController, model.GetType(), model); //
}
}

关于html - 来自其他 Controller 的调用的 MVC : Get HTML string From Controller/Action,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33439470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com