2013-07-05 51 views
1

我有一個.aspx文件:如何讓C#類瞭解HTML控件?

<%@ Page Language="C#" AutoEventWireup="true" Inherits="baa.foo" CodeFile="foo.aspx.cs" %> 
<input runat="server" id="name" name="name" /> 

foo.aspx.cs

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

namespace baa 
{ 
    public partial class foo : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      string s = name.Text; 
     } 
    } 

我怎麼向name HTML控件被foo.cs文件知道嗎?它返回一個錯誤:

Error 61 The name 'name' does not exist in the current context

注意:HTML不是由我寫的。我編輯的.html頁面爲.aspx的人,使他們dymically我能夠使用C#代碼

+2

打開標籤到像服務器控件和代碼隱藏頁應該能夠訪問它的屬性。 –

+1

''必須放在'

'的一端。 – adatapost

回答

1

By default, HTML elements within an ASP.NET file are treated as literal text and you cannot reference them in server-side code. To make these elements programmatically accessible, you can indicate that an HTML element should be treated as a server control by adding the runat="server" attribute.

HTML server controls must reside within a containing form tag with the runat="server" attribute.

參考從他們那裏得到的值:HTML Server Controls

現在你可以從代碼後面訪問你的控件但是在這裏你不能得到Text屬性的input html控件,你需要獲得Value屬性。

如果您將html頁面轉換爲ASPX,那麼您可以用現有的HTML控件替換相關的ASP.NET控件。例如,你可以使用輸入型文本與ASP.NET TextBox control

0

使用name.value,而不是name.text

+0

這不起作用。錯誤是:'name'name'在當前上下文中不存在' – Jack