1

我有一个 .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知道 HTML 控件?它返回一个错误:foo.cs

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

注意:HTML 不是我写的。我正在将 .html 页面编辑为 .aspx 页面以动态生成它们,并且我可以使用 C# 代码从它们中获取值

4

2 回答 2

1

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

并且

HTML 服务器控件必须位于具有runat="server"属性的包含表单标记中 。

参考:HTML 服务器控件

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

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

于 2013-07-05T02:53:54.483 回答
0

使用name.value而不是name.text

于 2013-07-05T05:11:09.997 回答