到目前为止传递数据到控制器

时间:2013-01-26 11:14:28

标签: asp.net razor asp.net-mvc-4

在表单中,我有不同的字段(名称,年龄,......)以及上传图像的可能性。我想以不同的观点实现这一点。问题是,当我想要更改控制器时,到目前为止所做的数据不会传递给控制器​​。这是我的代码的一个小例子:

@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");
}

如何在不使用提交按钮的情况下获取输入的信息?

1 个答案:

答案 0 :(得分:0)

在使用MVC的asynchronus文件上传时,查看Bryan Sampica的this blog post。我们只是用它来获得流畅的异步文件上传体验,所以我们不必离开页面。这解决了如何持久保存瞬态数据的问题。如果您的用户使用的是现代浏览器(IE 10 +,Chrome,FF等),进度条实际上会显示文件上传进度。设置相当容易,但是,如果按照说明进行操作,则需要向项目添加webAPI控制器。