2

当我创建配置文件并添加项目时,它总是说没有在后面的代码中声明!

我试图将项目的Framework从Framework 4.0更改为Framework 3.5,但仍然无法正常工作。

它说 FirstNamep , LastNamep 未声明。

Web.config中:

   <profile defaultProvider="CustomProfileProvider" enabled="true">

   <providers>

  </providers>

  <!-- Define the properties for Profile... -->
  <properties>
      <add name="FirstNamep" type="String" />
      <add name="LastNamep" type="String" />

  </properties>
</profile>

代码背后:

    Profile.FirstNamep = FirstNameTextBox.Text 
    Profile.LastNamep = LastNameTextBox.Text
4

1 回答 1

0

这些属性是在运行时动态生成的,这意味着您无法从代码隐藏中访问它们。您可以做的是使用脚本块从您的 .ASPX 页面访问它们(如果适合您的话)。像这样。

<%@ Page Language="C#" %>

<script runat="server">
    public void Page_Init()
    {
        Profile.FirstNamep = "some dood";
    }
</script>

<div>Your name is <%= Profile.FirstNamep %></div>

配置文件可用于 .aspx 页面,但不适用于背后的代码,这似乎是某种“设计使然”。


如果您已将默认提供程序定义为CustomProfileProvider,那么它必须是一个继承的类System.Web.Profile.ProfileProvider。否则,您应该使用默认的 SQL 配置文件提供程序

<connectionStrings>
   <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

<membership>
    <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
    </providers>

   

于 2012-09-28T23:03:00.507 回答