ASP.NET MVC 2 RTM - 2つのボタンシングルビュー/フォームでのアクションを提出取り扱い
-
20-09-2019 - |
質問
私は、ユーザーがサーバーにファイルをアップロードすることができた図を持っています。
インポートされた最後のファイルをダウンロードするファイルやその他をアップロードする1このビューでは、私はまた、2つのボタンがあります。
私のコントローラでは、私は2つのアクションメソッド作成:インポートとエクスポート]を
どのように私は私のコントローラで適切なアクションメソッドに、各ボタンのクリックをリダイレクトするために管理することができるか。
私が試してみましたHtml.ActionLinkます:
<%= Html.ActionLink("Upload", "Import", "OracleFile")%>
<%= Html.ActionLink("Download", "Export", "OracleFile")%>
Html.ActionLinkは、トリックをしませんでした。アクションリンクは、右のアクションメソッドに私を取っていたが、彼らはGETリクエストを生成しました。このようRequest.Files.Count = 0ます。
私は、POSTリクエストが必要です。
注:アップロードが働いていたし、突然のすべては、それが動作を停止することを最も魅力的な部分です。私は何人かの人々はRequest.Filesは常に空であるのFileUploadのタスクと同じ問題を抱えていることを見てきました。私は、サーバーへのポストを必要とするので、それが空だと思います。それはないですか?
解決
多分これはuのアイデアを与えるだろう。
表示
<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
<input type="file" name="file" id="file" />
<input type="submit" name= "submitImport" value="Upload" />
<input type="submit" name = "submitExport" value="Download" />
</form>
の制御の
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Action (FormCollection formCollection)
{
if (formCollection["submitImport"] != null)
{
return Import(formCollection);
}
if (formCollection["submitExport"] != null)
{
return Export(formCollection);
}
}
のエクスポートとインポートの
appropriateactionsです他のヒント
あなたは「マルチパート/フォームのデータ」形式を使用して、フォームを送信する必要があります。ノーActionLinkのます。
<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
<input type="file" name="file" id="file" />
<input type="submit" value="Upload" />
</form>
、アップロードのPOSTリクエストを生成するファイル入力フォーム要素を使用し、普通ALAサーバーにポストバックされます。
http://www.w3schools.com/jsref/dom_obj_fileupload.aspする
スコットHanselman氏からこのブログの記事を見てください。 http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspxする