0

私は ajax ファイル アップローダーを使用して多くの画像をアップロードしました。すべての画像をディレクトリにのみ保存します (データベース内の 1 つのレコードのみを意味します)。そのディレクトリからグリッドビューにすべての画像を表示するにはどうすればよいですか?

これは、画像をアップロードしてディレクトリフォルダーごとにデータベースに保存する方法に関する私のコードです。

  protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        

        String pathdirectory = (Session["StoryPath"].ToString() + "/"); // selected item.

        EnsureDirectoriesExist(pathdirectory);

        String filepathImage = @"~/Story/" + pathdirectory;

        AjaxFileUpload1.SaveAs(Server.MapPath(filepathImage + e.FileName));


        Session["filepathImage"] = filepathImage;

    }

 protected void btnDone_Click(object sender, EventArgs e)
    {

        
          if (Session["filepathImage"] != null)
          {
              string filepathImage = Session["filepathImage"] as string; 
              act.ActivityID = Convert.ToInt32(dropListActivity.SelectedItem.Value);
              act.Title = txtStoryTitle.Text;

              act.FileURL = filepathImage;

              daoStory.Insert(act);
              daoStory.Save();  

             // Label1.Text = filepathImage;
           
           
          }
    }

これは別のコードです(グリッドビューに画像を表示する別のWebページ):

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            BindStory();
        }
    }

    protected void BindStory()
    {
        gvStory.DataSource = daoStory.GetAll();
        gvStory.DataBind();
    }

データベースからレコードを取得するためにエンティティ フレームワークを使用しています。

   public IList<Model.story> GetAll(int listAct)
     {

         IList<Model.story> lstImages = context.stories.ToList();
         return lstImages.Where(c => c.ActivityID == listAct).Select(a => new Story() { a.FileURL }).ToList();

     }  

私はこのラムダ式に不慣れで、エラーが発生します:「System.Collections.IEnumerable」を実装していないため、コレクション初期化子で型を初期化できません。これは正しい方法ですか? activityID == listAct.

4

1 に答える 1

1

SelectModel.story を既に返しているため、実行する必要はありません。returnステートメントを次のように置き換えてみてください。

return lstImages.Where(c => c.ActivityID == listAct).ToList();

注意として、Select特に何かのコレクションを返したい場合に使用してください。あなたの例には、あなたの値を初期化する際の構文が間違っていますnew Story() { a.FileURL }。その構文を修正するとします。

return lstImages.Where(c => c.ActivityID == listAct).Select(a => new Story() { FileURL = "SOMEURL" }).ToList();

これは、条件を満たすStoryリストから のリストを返すことを意味します。Model.storyWhere

于 2013-06-10T07:58:51.620 に答える