gpt4 book ai didi

visual-studio-2010 - 如何将 Visual Studio 2010 MVC 3 用于非基于 html 的项目?

转载 作者:行者123 更新时间:2023-12-04 17:11:51 25 4
gpt4 key购买 nike

我想将 Visual Studio 2010 MVC 3 框架用于托管 VXML 的 Web 项目和 CCXML而不是基于电话的应用程序的 HTML。

MVC 3 似乎非常适合这种应用程序,我认为它是一种很好的替代品,可以替代通常用于 VXML/CCXML 的更广泛使用的基于 jsp/Tomcat 的应用程序。但是有一些烦恼:

  • 该项目试图将我的 .cshtml 页面验证为 HTML(可以理解),或者我在选项>文本编辑器>HTML>验证>目标中设置的任何目标验证,但它迫使我进行验证。我似乎无法找到完全关闭它的方法。有没有办法关闭它并防止数百个警告?或者更好的是,为 CCXML/VXML 编写我自己的自定义验证?
  • 有没有办法自动将所有 View 的内容类型设置为“text/vxml”,而无需编写 Response.ContentType = "text/vxml";在每个 Action 方法中?
  • 最佳答案

    您可以基于 Razor View 引擎编写自定义 View 引擎并为您的 View 注册自定义扩展:

    public class VXMLViewEngine : RazorViewEngine
    {
    public VXMLViewEngine()
    {
    ViewLocationFormats = new[] { "~/Views/{1}/{0}.vxml", "~/Views/Shared/{0}.vxml" };
    MasterLocationFormats = new[] { "~/Views/{1}/{0}.vxml", "~/Views/Shared/{0}.vxml" };
    PartialViewLocationFormats = new[] { "~/Views/{1}/{0}.vxml", "~/Views/Shared/{0}.vxml" };
    FileExtensions = new[] { "vxml" };
    }

    protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath)
    {
    controllerContext.HttpContext.Response.ContentType = "text/vxml";
    return base.CreateView(controllerContext, viewPath, masterPath);
    }
    }

    并在 Application_Start 中声明自定义扩展:
    RazorCodeLanguage.Languages.Add("vxml", new CSharpRazorCodeLanguage());
    WebPageHttpHandler.RegisterExtension("vxml");
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new VXMLViewEngine());

    和 web.config 中的自定义构建提供程序将识别 .vxml延期:
    <compilation debug="true" targetFramework="4.0">
    <assemblies>
    ...
    </assemblies>
    <buildProviders>
    <add extension=".vxml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </buildProviders>
    </compilation>

    现在你可以使用 .vxml作为 View 的扩展。由于 Visual Studio 无法识别 .vxml扩展名,当你用它打开一个文件时,它不会用警告来打扰你。你甚至可以创建一个自定义 VS 插件,为这个自定义扩展提供语法高亮和智能感知。

    关于visual-studio-2010 - 如何将 Visual Studio 2010 MVC 3 用于非基于 html 的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633537/

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