2012-03-22 36 views
0

在webmatrix中,我在App_Data中創建了一個帶有許多公共靜態函數的DAL.cshtml。一個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

一旦我感動DAL.cshtml到一個名爲App_Code文件,而不是App_Data文件夾(感謝信達林)它只是工作。

請注意,我已經結束了與代碼如下(在情況下,它可以幫助他人的初級)........

DAL.cshtml現在一個名爲App_Code文件夾中,我有:

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

.cshtml 調用仍然是我第一次報

如果有誰知道這是爲什麼,我想明白了。

+0

您可以接受自己的答案,將問題標記爲已解決。 – 2012-03-23 09:37:26

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 2012-03-22 21:44:58

+0

@CharlotteCopper,不,你已經把它放在'App_Data'文件夾中,它與'App_Code'不一樣。你也使用了'DAL.cshtml',而我使用了'DAL.cs',它再一次不是同一件事。 – 2012-03-22 21:45:39

+0

噢,好的。我會嘗試複製。當我創建新的webmatrix頁面時,似乎沒有可用的文件擴展名.cs。謝謝你 – Pinwheeler 2012-03-22 21:48:04

相關問題