2011-10-30 22 views
3

私はPostalを使って(ASP.NETプロジェクトではない)サービスから電子メールを送信しようとしています。私は郵便のwikiからチュートリアルを以下のよ剃刀例外コンパイルテンプレート

error CS0103: The name 'model' does not exist in the current context 

問題の
@model Namespace1.AlertEmailViewModel 

From: [email protected] 
To: @Model.FirstName @Model.LastName <@Model.Email> 
Subject: Alert! @Model.ShortDescription 

(モデルクラス:https://github.com/andrewdavey/postal/wiki/Postal-in-non-web-scenario

私のテンプレートは次のようになります私は、次のようなメッセージで例外を取得しておきます)存在しません。

助けていただければ幸いです。ありがとう!

+0

現在のバージョンのmvc/razorライブラリを使用していますか? –

+0

@Marc Gravell NuGetを使ってPostalを入手したので、RazorEngine NuGetパッケージが最新のものであると仮定します。しかし、チェックする価値は –

+0

です。結局のところ、先頭にキャストを追加するのは簡単なことかもしれません: 'var typedModel =(ModelType)Model;' –

答えて

2

あなたはボンネットの下に、それは私たちのRazorEngineプロジェクトを使用している、非Webシナリオで郵便を使用していると。現在、これはNuGetに現在プッシュされているv2.1リリースを利用していることを意味します。

@modelの構文はv2.1でネイティブにサポートされていませんが、今後のv3リリースではこのサポートが含まれています。レイアウト、スレッドセーフなど(https://github.com/Antaris/RazorEngine)

0

以前のバージョンのMVCを使用して作成されたプロジェクトの場合、過去にこの問題が発生しました。

は、私の記憶が正しければ、あなたのApp.configファイルにこれを追加し、それを解決するには、次の

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
+1

ここにはweb.configはありません。これはASP.NETプロジェクトではありません。 –

+0

さて、Razorテンプレートエンジンを使用しています。つまり、System.Web.Mvcアセンブリを参照しています。 Webプロジェクトに参加していなければApp.configに入れてください。 –

+0

これは何もしませんでした。 –