小编wh1*_*p3r的帖子

MVC 5渲染视图到字符串

看来,用于将视图呈现为字符串的大多数代码在MVC 5中都不起作用.

我有最新的MVC 5.1.2模板,我试图将视图渲染成字符串.

    public static String RenderViewToString(ControllerContext context, String viewPath, object model = null)
    {
        context.Controller.ViewData.Model = model;
        using (var sw = new StringWriter())
        {
            var viewResult = ViewEngines.Engines.FindView(context, viewPath, null);
            var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw);
            viewResult.View.Render(viewContext, sw);
            viewResult.ViewEngine.ReleaseView(context, viewResult.View);
            return sw.GetStringBuilder().ToString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

嗯,它正在工作,但它的输出包含许多$标记而不是标记.我读过有关它的内容已在RC版本中修复,但这是旧闻.

问题看起来像这样

<$A$><h1></h1> 
<table</$A$><$B$> class=""</$B$><$C$>> <tbody</$C$><$D$></$D$><$E$>></tbody>
</table></$E$>
Run Code Online (Sandbox Code Playgroud)

我想问一下,如何在最新的MVC 5模板中将视图呈现为字符串?谢谢.

asp.net-mvc asp.net-mvc-5

22
推荐指数
2
解决办法
3万
查看次数

如何在线性时间内从顶点列表生成索引?

这是我的3D应用程序的导出器插件.我目前的解决方案工作正常,但速度非常慢(复杂度为O(n ^ 2*log n)).

它应该是一个函数,其中input是一个对象Verticle数组,并作为Verticle列表输出,没有重复和索引列表.

此外,当两个顶点彼此非常非常接近时(假设差异大约为0.001),算法会将其标记为重复.

我的问题是,有没有办法在线性时间内完成,或者至少在我的解决方案中更快?非常感谢你.

directx 3d

7
推荐指数
1
解决办法
2074
查看次数

如何使用asp-for标签绑定数组?

我想问一下,如何在Asp.NET Core MVC中绑定一个数组?

<input type="text" asp-for="Requests[@index].Name" />
Run Code Online (Sandbox Code Playgroud)

它在旧版本的ASP MVC中运行良好.此示例显示"内部服务器错误".

" 在编译处理此请求所需的资源期间发生错误.请查看以下特定错误详细信息并适当修改源代码. "

ViewModel类示例:

public class ViewModel
{
    public List<Model> Requests {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

模型类示例:

public class Model
{
    public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

它应该如何工作?提交带有这些输入的表单后,MVC应自动在ModelView中创建并映射列表.这就是它在ASP.NET MVC 4中的工作方式.

asp.net-core-mvc asp.net-core

7
推荐指数
2
解决办法
9293
查看次数

如何在新的.NET Framework 4.6中启用SIMD?

我写了一个代码来测试,哪种方式更快.我在Release x64中运行代码.我有VS 2015 Pro与.NET Framework 4.6.

#if SYSTEMMATHLIB
using System.Numerics;
#else
using Engine.Mathematic;
#endif

namespace Engine.Editor
{
    public static class Program
    {
        public static void Main()
        {
            #if SYSTEMMATHLIB
            Console.WriteLine("Hardware Acceleration: " + Vector.IsHardwareAccelerated.ToString());
            #endif

            Stopwatch sw = new Stopwatch();
            sw.Start();

#if SYSTEMMATHLIB
            for (int i = 0; i < 1000000; i++)
            {
                Matrix4x4 m = Matrix4x4.CreateRotationZ(0.50f);
                m.Translation = new Vector3(5, 10, 15);

                Matrix4x4 m2 = Matrix4x4.CreateRotationX(0.50f);
                m2.Translation = new Vector3(-5, 10, -15);

                Matrix4x4 m3 = m * m2;
                Matrix4x4 …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

DirectX12 - 执行命令列表和呈现函数

我在微软的示例中发现:

void D3D12HelloTriangle::OnRender()
{
// Record all the commands we need to render the scene into the command list.
PopulateCommandList();

// Execute the command list.
ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() };
m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists);

// Present the frame.
ThrowIfFailed(m_swapChain->Present(1, 0));

WaitForPreviousFrame();
}
Run Code Online (Sandbox Code Playgroud)

实际上是如何运作的?ExecuteCommandLists 是一个异步函数调用,因此这意味着代码将继续执行并命中 Present 函数。

当前通话后会发生什么?比方说,GPU 仍在绘图、工作并存在被调用。Present是同步调用吗?当 GPU 仍在绘图时,它无法呈现缓冲区。那是对的吗 ?有人可以解释一下这里发生了什么吗?

directx-12

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

在应用程序重新启动之前,CSHTML 视图不会更新

我正在使用 browserlink 来编辑 CSS 样式,效果非常好。不幸的是,如果我更改 .cshtml 文件中的某些内容,我的浏览器会在保存时自动刷新,但更改不可见。

如果我关闭应用程序并再次打开,更改就会可见。看起来我的应用程序正在某处缓存视图,而不是将我所做的更改重新加载到我的文件中。

这确实不是浏览器缓存问题。应用程序确实发送未更改的 html 结果。

如何在开发中禁用此类缓存功能?

我正在使用最新的 ASP NET Core MVC 库。

编辑:如果我更改 _layout 中的任何内容,网站就会更新,没有任何问题。

编辑2:启动功能

        public void ConfigureServices(IServiceCollection services)
    {
        services.AddWebSocketManager();

        var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
        var path = System.AppDomain.CurrentDomain.BaseDirectory;

        var machineName = Environment.MachineName;
        var confBuilder = new ConfigurationBuilder();
        IConfigurationBuilder conf = confBuilder.SetBasePath(path);

        if (env == "Development")
        {
            conf = conf.AddJsonFile($"appsettings.json", optional: true, reloadOnChange: true);
            conf = conf.AddJsonFile($"appsettings.Development.json", optional: true, reloadOnChange: true);
            conf = conf.AddJsonFile($"appsettings.{machineName}.json", optional: true, reloadOnChange: true);
            conf = conf.AddJsonFile($"appsettings.External.json", optional: true, …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-mvc asp.net-core

3
推荐指数
1
解决办法
1424
查看次数