2013-01-16 49 views
1

的服務器端我有一個簡單的網站只有1頁具有與僅有1場的表單和一個提交按鈕。如何使用JavaScript在WebMatrix的網站

它要求一個電話號碼和呼叫用的形式捕獲的電話號碼的值的存儲過程。一旦提交,它會反饋用戶說該號碼已被提供,並保留在該頁面上,以便用戶可以輸入另一個電話號碼。

所以我創建了一個CSHTML文件看起來像這樣:

@{ 
string pn=Request.Form["pn"] 
and then my code to call the stored procedure with pn as a parameter 
} 

我遇到的問題是,當我去這個頁面服務器端拋出一個錯誤,指出該存儲過程需要一個參數沒有提供。

因此,我想要創建一個JavaScript函數,該函數將運行頁面的onload,只有在pn有值時纔會調用存儲過程。

我怎麼做,我應該在哪裏放置代碼(JS的@{}塊內?)

BTW,截至目前,我有2個頁面。第一個,沒有任何服務器端代碼,第二個是副本,再加上服務器端代碼。

回答

1

首先,您不需要使用JavaScript函數來驗證輸入客戶端,而是使用服務器端代碼來測試表單是否已提交以及是否存在有效值。

喜歡的東西:

@{ 
    if (IsPost) 
    { 
     string pn=Request.Form["pn"]; 
     if (!string.IsNullOrEmpty(pn)){ 
      /* your code to call the stored procedure */ 
     } 
    } 
} 

如果要深化這一主題,看看這個教程:Introduction to Working with a Database in ASP.NET Web Pages (Razor) Sites

+0

非常感謝。這無疑解決了一個問題,但那種引入了一個又一個......當用戶提交的電話號碼,我有HTML,說回

電話號碼@pn加入撥號請勿呼叫列表中的用戶'。

'但現在該頁面不解析,因爲它不知道pn'是什麼'。所以我試着加入你的代碼'else pn =「」;'但仍然沒有幫助。有沒有一種方法能有像我可以在包含在'@碼後設定{}'和JS引用或HTML中的「全局」變量?再次感謝。 – Amarundo

+0

真相是你給出了答案。其餘的我會問一個新的問題。 – Amarundo

相關問題