在表单中,我有不同的字段(名称,年龄,......)以及上传图像的可能性。我想以不同的观点实现这一点。问题是,当我想要更改控制器时,到目前为止所做的数据不会传递给控制器。这是我的代码的一个小例子:
@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");
}
如何在不使用提交按钮的情况下获取输入的信息?
答案 0 :(得分:0)
在使用MVC的asynchronus文件上传时,查看Bryan Sampica的this blog post。我们只是用它来获得流畅的异步文件上传体验,所以我们不必离开页面。这解决了如何持久保存瞬态数据的问题。如果您的用户使用的是现代浏览器(IE 10 +,Chrome,FF等),进度条实际上会显示文件上传进度。设置相当容易,但是,如果按照说明进行操作,则需要向项目添加webAPI控制器。