1

私はASP.NETとMVC3が初めてで、ファイルをアップロードしてその内容を処理し、結果をビューに表示する方法を理解しようとしています。

次のビュー コードを使用して、ファイルを正常にアップロードできます。

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new {
id="UploadForm",
enctype = "multipart/form-data"})){
<input type="file" name="file" id="Upload" size="60" />
<input type="submit" value="Submit" id="submitID" /> }

...そして、次のコントローラ コード:

public ActionResult Index(HttpPostedFile file) {
if (file != null && file.ContentLength > 0) {
var filename = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/REPO"), fileName);
file.SaveAs(path); }
return RedirectToAction("Index"); }

私がよく理解できないのは、ファイルをアップロードした後の処理方法です。サーバー側のコードを実行してファイルの内容を読み取り、その結果をインデックス ビューに表示したいと考えています。

だから、これは私がやりたいことです:

  1. 一部のプロセスにリダイレクトする (コントローラー アクション)
  2. ファイル名を文字列でアクションに渡します
  3. サーバー側プログラムを使用してファイルを読み取り、出力を生成します (この部分は既に C# でコーディングされており、文字列入力から文字列を出力します)。
  4. その文字列をインデックス ビュー コントローラーに戻して、ページに表示します。

私は何をしますか?私が言ったように、私はASP.NETとMVCに比較的慣れていないので(〜2週間)、答えを明示してください。あまり仮定しないでください。ご協力いただきありがとうございます!

4

1 に答える 1

0
public ActionResult Index(HttpPostedFile file)
    {
        if (file != null && file.ContentLength > 0)
        {
            var filename = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/REPO"), fileName);
            file.SaveAs(path);

            string result = DoStuffWithFile(file);

            ViewBag.FileResult = result;

        }
        return View();
    }

次に、ビューで使用@ViewBag.FileResultして文字列を取得します。

于 2012-07-11T13:46:09.593 に答える