1

MVC 4 と Razor Syntax を使用して CMS を作成していますが、奇妙な問題があります。
メイン プロジェクトではすべて正常に動作していますが、独自のビュー/レイアウトを持つメイン プロジェクト (実行時に読み込まれる) の拡張機能であるソリューション (MVC 4 プロジェクトも) にいくつかの追加プロジェクトがあります。

これらの追加プロジェクトでは、レーザー エディターは必要に応じて 8 倍の強調表示を行いますが、(Html ヘルパーのように) すべてが欠けているとして下線を引くか、まったく機能しません:
ない
または
動作していません

誰かが理由を知っていますか?ファイルは、Razor エディターが使用されていることを確認するために、"Open With..." を介して Razor エディターで開かれます。

4

3 に答える 3

1

問題が見つかりました。
デバッグを容易にするために、メインプロジェクトのプラグインフォルダーに直接ビルドするようにビルドを構成しましたが、かみそりエディターはそれを好まないようです。出力を「bin」に戻すとすぐに、再び機能します。
次に、コピーを実行するためのビルド後の手順を作成します...

于 2013-03-13T15:28:40.830 に答える
1

Razor ファイル (から取得)web.configで Visual Studio の Intellisense を騙すには、次の内容のダミー ファイルをクラス ライブラリのルートに追加するだけです。this blog post

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
            <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
    </configSections>

    <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
            <namespaces>
                <add namespace="System.Web.Mvc" />
                <add namespace="System.Web.Mvc.Ajax" />
                <add namespace="System.Web.Mvc.Html" />
                <add namespace="System.Web.Routing" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>

    <system.web>
        <compilation targetFramework="4.0">
            <assemblies>
                <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </assemblies>
        </compilation>
    </system.web>
</configuration>
于 2013-02-17T12:54:01.657 に答える
0

MEF を使用して同様のことを行い、プラグインを作成しました。「system.web.mvc」と「system.web.mvc.html」の using ステートメントを必ず追加してください。

そこに正しいものがあると思います...確認する解決策がありません

どうぞ:

@using System.Web.Mvc.Html;
@using System.Web.Mvc;
@model Terminals.Models.vmDeviceAdd
@{
    ViewBag.Title = "Index";
    Layout = "~/Areas/Terminals/Views/Shared/Master/_TerminalLayout.cshtml";
}
于 2013-02-17T12:50:31.190 に答える