Я пытаюсь переместить функцию UploadFile на BasePage, чтобы я мог повторно использовать ее на многих страницах aspx. Мой исходный код выглядит следующим образом:Как определить функцию UploadFile на BasePage, чтобы ее можно было повторно использовать на многих страницах aspx
upload.aspx.cs
public partial class upload : CodeBasePage
{
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
try
{
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
//Upload stuff;
}
...
upload.aspx
<asp:FileUpload runat="server" ID="UploadImages" />
<asp:Button runat="server" ID="uploadedFile" Text="Upload" OnClick="uploadFile_Click"/>
До сих пор так хорошо. Код работает нормально.
Теперь я хочу переместить uploadFile_Click в BasePage (CodeBasePage), чтобы я мог повторно использовать его на многих страницах aspx.
я переехал следующее в CodeBasePage и объявил переменные:
CodeBasePage.cs
public Button uploadedFile;
public FileUpload UploadImages;
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
try
{
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
//Upload stuff;
}
...
Но, видимо, я делаю что-то неправильно. Когда я нажимаю кнопку «Загрузить» на странице aspx, я получаю сообщение об ошибке «Ссылка объекта не установлена на экземпляр объекта».
Line 292: if (UploadImages.HasFiles)
Любой совет будет оценен по достоинству. Я думаю, что проблема заключается в том, как отправлять переменные upload с страницы upload.aspx в CodeBasePage.cs.
Любые подробнее/ссылки о том, как добиться этого ... Я до сих пор в процессе обучения! – Gloria
Для этого конкретного элемента управления я бы создал пользовательский элемент многократного использования вместо того, чтобы добавлять его на базовую страницу, вы можете найти более подробную информацию в этой статье [http://msdn.microsoft.com/en-us/library/3457w616%28v = VS.90% 29.aspx). Чтобы получить представление о том, что входит в базовую страницу, есть много статей, которые вы можете найти с помощью простого поиска в Google. (Поздний ответ, но я надеюсь, что это поможет) – solidrevolution
На самом деле я получил ту же идею, что использование User Control - лучший вариант для этого случая. Спасибо за отзыв. – Gloria