2012-03-22 2 views
0

webmatrixでは、多くの公開静的関数を使用してApp_DataにDAL.cshtmlを作成しました。1つのcshtmlが別のcshtmlの関数をどのように呼び出すのですか?

別の.cshtmlページから別のフォルダに呼び出す必要があります。現在

私は コンパイラエラーメッセージが表示されます:CS0103を:名前DALは

(私は、単一の場所へのデータアクセスを移動についてのブログ、以下の初心者です注意してください)現在のコンテキスト内に存在しない私DAL.cshtmlで

例は次のとおりです。私の '呼び出し' で

public static void AddProfile (dynamic Profile) 
{ 
var sql = "INSERT INTO profile (ProfileDescription, ProfileType) " + 
      "VALUES (@0, @1)"; 
      PinwheelDB.Execute(sql, Profile.ProfileDescription, Profile.ProfileType); 
      var Profile.ProfileID = PinwheelDB.GetLastInsertId(); 
} 

私が持っている.cshtml:

 dynamic Profile = new ExpandoObject(); 
      Profile.ProfileDescription = Request.Form["txtChildFirstName"]; 
      Profile.ProfileType = 1; 
     functions.DAL.AddProfile(Profile); 
     var vProfileID = Profile.ProfileID; 

答えて

2

私は(ありがとう、あなたのダーリン)の代わりにApp_DataにするにApp_CodeというフォルダにDAL.cshtmlを移動したら、それだけで働いた。

今私が持っているにApp_Codeというフォルダ内

DAL.cshtml ........(場合には、それは別の初心者に役立ちます)、次のように私は終わっているコードがあることに注意してください:

私が最初に

を引用して、これは私が理解したいのですが、なぜ誰もが知っている場合

@functions 
{ 
public static void AddProfile (dynamic Profile) 
{ 
var sql = "......"     
PinwheelDB.Execute(sql, .......); 
} 

呼び出し.cshtml が残っています。

+0

自分の答えを受け入れることができます。 –

0

一般的に使用されるメソッドは、App_Codeフォルダのクラスに配置できます。たとえば、あなたは~/App_Code/DAL.csを持つことができます:

public class DAL 
{ 
    public static void AddProfile(dynamic profile) 
    { 
     ... 
    } 
} 

とあなたの呼び出しカミソリのページで:

@{ 
    var profile = ... 
    DAL.AddProfile(profile); 
} 
+0

申し訳ありませんが、元の質問のコードの抜粋についていくつかの情報が欠落しています....私はすでにあなたが説明したように私はそれを持っていると思います。呼び出し元のRazorビットは@ {}に含まれています。私は〜/ App_Code/DAL.cshtmlを持っています。しかし、呼び出すカミソリのページには、〜/ App_Code/DAL.csへの参照がないことが問題になる可能性がありますか? thx – Pinwheeler

+0

@CharlotteCopper、いいえ、あなたは 'App_Code'と同じではない' App_Data'フォルダに入れました。また、 'DAL.cshtml'を使用しましたが、' DAL.cs'を使用しましたが、もう一度同じことではありません。 –

+0

ありがとうございます。私はコピーしようとします。新しいwebmatrixページを作成すると、ファイル拡張子.csは利用できないようです。ありがとうございます – Pinwheeler