如何让C#类了解HTML控件?

时间:2013-07-05 02:25:32

标签: c# asp.net visual-studio-2008 htmlcontrols

我有一个.aspx文件:

<%@ 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文件中的foo类知道.cs HTML控件?它返回一个错误:

  

错误61当前上下文中不存在名称“name”

注意:HTML不是我写的。我正在编辑.html页面到.aspx那些以使它们成为dymically并且我能够通过使用C#代码从它们获取值

2 个答案:

答案 0 :(得分:1)

  

默认情况下,ASP.NET文件中的HTML元素被视为   文字文本,您不能在服务器端代码中引用它们。至   以编程方式访问这些元素,您可以指出   通过添加,应将HTML元素视为服务器控件    runat =“server”属性。

并且还

  

HTML服务器控件必须位于包含表单标记内    runat =“server”属性。

参考:HTML Server Controls

现在您可以从后面的代码访问您的控件,但在这里您无法获得Text html控件的input属性,您需要获得Value属性。

如果将html页面转换为ASPX,则可以使用现有HTML控件替换相关的ASP.NET控件。例如,您可以将输入类型文本与ASP.NET TextBox control

一起使用

答案 1 :(得分:0)

使用name.value代替name.text