0

フォームには、さまざまなフィールド (名前、年齢など) と、画像をアップロードする機能があります。これは別の見方で実現したい。問題は、コントローラーを変更したいときに、これまでに作成したデータがコントローラーに渡されないことです。ここに私のコードの小さな例があります:

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Person</legend>
        @Html.EditorFor(model => model.Name)
        @Html.EditorFor(model => model.Age)

        <img src="@Url.Content(Model.ImagePath)" alt="Image" class="imagePreview" />
        <li>
            @Html.ActionLink("Upload a pic from you!", "UploadImage", new { model = Model }, null)
            @* This is the 'problematic' action *@
        </li>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

アップロード コントローラーを呼び出すメソッドは次のとおりです。

public ActionResult UploadImage(Person model)
{
    // properties in the passed model are not set
    return RedirectToAction("UploadImage", "UploadImage");
}

送信ボタンを使わずに入力した情報を取得するにはどうすればよいですか?

4

1 に答える 1

0

MVC を使用した非同期ファイルのアップロードに関する Bryan Sampica によるこのブログ投稿を確認してください。スムーズな非同期ファイル アップロード エクスペリエンスのために使用しただけなので、ページを離れる必要はありませんでした。これにより、一時データを永続化する方法の問題が解決されます。ユーザーが最新のブラウザー (IE 10 以降、Chrome、FF など) を使用している場合、進行状況バーには実際にファイルのアップロードの進行状況が表示されます。セットアップはかなり簡単ですが、手紙の指示に従うと、プロジェクトに webAPI コントローラーを追加する必要があります。

于 2013-12-06T17:23:58.363 に答える