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

查看Bryan Sampica 的这篇关于使用 MVC 进行异步文件上传的博客文章。我们只是将它用于平滑的异步文件上传体验,因此我们不必离开页面。这解决了您如何持久化瞬态数据的问题。如果您的用户使用的是现代浏览器(IE 10+、Chrome、FF 等),进度条实际上会显示文件上传进度。设置起来相当容易,但是,如果您按照信中的说明进行操作,则确实需要您将 webAPI 控制器添加到您的项目中。

于 2013-12-06T17:23:58.363 回答