我的页面上大致有这个设置 - 一个文件上传控件和一个 div(#changebit),它在不同的部分视图中交换,“列表”是默认设置。
<td><input type="file" name="Image" /></td>
<td><input type="submit" value="Save" /></td>
<div id="changingBit">
@Html.Partial("List", Model.Things)
</div>
这些局部视图基本上列出了文件夹和文件。我需要能够将部分视图的操作中可用的参数(如当前文件夹路径)传递给上传控制器操作。
我尝试在列表/编辑部分视图中添加它
ViewData["id"] = some value...
但这在主页内始终为空。如何在上传控制器操作中获取该值?
谢谢!
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload(HttpPostedFileBase image)
{
//some magic to access a partial views variable
// .............
//
if (image != null)
{
var fileName = Path.GetFileName(image.FileName);
var path = Path.Combine(Server.MapPath("~/Directories/YourDirectory"), fileName);
image.SaveAs(path);
}
return RedirectToAction("Index");
}
[HttpGet]
public ActionResult Edit(int id)
{
ViewData["id"] = id; <--- how to get this file inside Upload action?
...
}
编辑:
最终在主页上执行此操作
<input type="hidden" name="currentIdSelection" value="@Model.CurrentIdSelection" />
现在有效,我更改了传递给“编辑”局部视图的模型以存储另一个值。可能有更多的 MVC 方式来做到这一点......