相关疑难解决方法(0)

在.NET Core中使用MVC之外的Razor

我想在我正在.NET Core中编写的.NET控制台应用程序中使用Razor作为模板引擎.

我遇到的独立Razor引擎(RazorEngine,RazorTemplates)都需要完整的.NET.我正在寻找适用于.NET Core的解决方案.

.net c# razor .net-core

54
推荐指数
6
解决办法
3万
查看次数

MVC 6 Controller中的ControllerContext和ViewEngines属性在哪里?

我创建了一个新的MVC6项目并构建了一个新站点.目标是获取视图的渲染结果.我找到了以下代码,但我无法让它工作,因为我找不到ControllerContextViewEngines.

这是我想要重写的代码:

protected string RenderPartialViewToString(string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = ControllerContext.RouteData.GetRequiredString("action");

    ViewData.Model = model;

    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core-mvc asp.net-core

17
推荐指数
2
解决办法
1万
查看次数

如何将静态类从.NET迁移到.NET Core?

我正在将一个webform(不是WebForm技术,一个精简的Web应用程序转换为webform功能)从ASP.NET MVC迁移到ASP.NET Core MVC.我目前最大的问题是我们在之前版本的webform中使用的静态类.此静态类使用.NET中可用但在.NET Core中不可用的包.

我理解对于这个静态类中的一些方法,我必须使用依赖注入来解决包问题.但是,无法将参数传递给静态类,使其成为.NET Core的"反模式".

我的Utils.cs静态类只有两个方法,RenderPartialToStringSendEmail.SendEmail非常简单,并且当前的.NET Core包没有问题.但是,我的静态类中有以下代码,不适用于当前版本.

public static class Utils
    {

        public static readonly string ApiUrl = ConfigurationManager.AppSettings["ApiUrl"];
        public static readonly string ApiKey = ConfigurationManager.AppSettings["ApiKey"];

        public static string RenderPartialToString(Controller controller, string viewName, object model)
        {
            controller.ViewData.Model = model;

            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
                ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return "document.write('" + sw.GetStringBuilder().Replace('\n', ' ').Replace('\r', ' ').Replace("'","\\'").ToString() + "');"; …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-mvc asp.net-core

5
推荐指数
1
解决办法
2774
查看次数