2016-10-23 12 views
0

私は2つの関数を書いています:ダウンロードと削除の機能は、gridviewファイル です。 Games_RulesBookletにファイル名をチェックし、 "〜/ AppData/RulesData /"内に名前があるファイルをダウンロードします。私は正常に接続機能を操作します。mscorlib.dllで 'System.ArgumentException'例外が発生しました。追加情報:無効な文字列

errors をこれらのラインは、CSファイルである:

protected void DownloadFile(object sender, EventArgs e) 
{ 

     string filePath = (sender as LinkButton).CommandArgument; 
     Response.ContentType = ContentType; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + Path.GetFileName(filePath)+ "\""); 
     Response.WriteFile("~/AppData/RulesData" + filePath); 
     Response.End(); 
} 

protected void DeleteFile(object sender, EventArgs e) 
{ 
    string filePath = (sender as LinkButton).CommandArgument; 
    File.Delete(filePath); 
} 
しかし、私はダウンロードしようとするたびに、エラーがポップアップし、私はRulesData

に添付したい特定のファイルをダウンロードするように見えることはできません

これらの行は、私のaspxファイルに格納されています

ダウンロード:

<asp:LinkButton ID="lnkDownload" CommandArgument ='<#% Eval("Game_RulesBooklet") %>' Text="Download" runat="server" OnClick ="DownloadFile"></asp:LinkButton> は削除:

<asp:LinkButton ID = "lnkDelete" Text = "Delete" CommandArgument ='<#% Eval("Game_RulesBooklet") %>' runat = "server" OnClick = "DeleteFile" /> 
+0

この '<#% Eval("Game_RulesBooklet") %>'からハッシュタグ をシフトすることによってコードを修正しますか? – rene

+0

1.HTMLではなく外部画像を参照してください。 2. CommandArgumentに何が入っているかを見るために、ちょうどデバッグまたは出力filePath。 –

+0

@rene、そのファイルが空であるか、/ AppData/RulesData/ –

答えて

0

問題は、この応答を書いているパスであると思われます。 次の形式のパスを指定してください。 Response.WriteFile( "〜\ AppData \\ RulesData \\" + filePath);

またはあなたも空であってはならないファイルパスのためのServer.MapPathの

Thevalueを使用することができ、それを避けるためにチェックを追加してください。

+0

提案したフォーマットに変更しようとしましたが、まだ同じエラーが表示されています。 –

+0

あなたはデバッガからfilepathの値を得ましたか? –

+0

式:filePath値= '<#%Eval(" Game_RulesBooklet ")%>' –

0

はGame_RulesBooklet` `であろう典型的な値の例であり、これは何

'<%#Eval("Game_RulesBooklet") %>'
関連する問題