既存のWebサイトでDynamicData機能の使用を開始しようとしています。基本的に私はこのチュートリアルに従っています。フィールドテンプレートの作成に関する部分に到達したとき、おそらく動的データのものが組み込まれた新しいサイトを作成し、フォルダーをコピーするだけでよいと判断しました。
残念ながら、これを実行してコンパイルしようとすると、DynamicDataディレクトリ内のほぼすべての.ascxファイルに対して「タイプを読み込めませんでした...」というエラーが表示されます。名前空間が同じになるように、「新しい」プロジェクトに既存のサイトと同じ名前を付けました...しかし、他に何が欠けているのか考えられません。
* .ascx.Designer.csファイルがソリューションエクスプローラー内に表示されていることを除いて、すべて問題ないように見えます。1つを削除してから、そのファイルをディレクトリだけにコピーして戻しましたが、機能しませんでした。Visual Studioがそれらを適切に処理してコンパイルできるように、それらに対して何か特別なことをする必要があると思いますか?
.aspxファイルの1つは次のとおりです。
<%@ Control Language="C#" CodeBehind="FilterUserControl.ascx.cs" Inherits="EService.FilterUserControl" %>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
EnableViewState="true" ontextchanged="new">
<asp:ListItem Text="All" Value="" />
</asp:DropDownList>
一致する.csファイルは次のとおりです。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Web.DynamicData;
namespace EService
{
public partial class FilterUserControl : System.Web.DynamicData.FilterUserControlBase
{
public event EventHandler SelectedIndexChanged
{
add
{
DropDownList1.SelectedIndexChanged += value;
}
remove
{
DropDownList1.SelectedIndexChanged -= value;
}
}
public override string SelectedValue
{
get
{
return DropDownList1.SelectedValue;
}
}
protected void Page_Init(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PopulateListControl(DropDownList1);
// Set the initial value if there is one
if (!String.IsNullOrEmpty(InitialValue))
DropDownList1.SelectedValue = InitialValue;
}
}
}
}
そして、これが.ascx.designer.csファイルです。
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1433
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace EService
{
public partial class FilterUserControl
{
protected System.Web.UI.WebControls.DropDownList DropDownList1;
}
}
編集:私がウェブサイトでファイルを作成する場合、私が作成した一時的なサイトからコンテンツをコピーすると、それはうまくコンパイルされているようです。ここで問題が何であるかは本当にわかりません...コピーの結果に一致するようにファイルを手動で変更しようとしましたが、実際にサイトで作成しない限り、ファイルは機能しませんでした。それはただ奇妙です...