我有上傳我的文件的問題。我想從我的編輯視圖上傳:ASP.NET MVC2 +文件上傳(HttpPostedFileBase類)
<%
using (Html.BeginForm("edit","profile",FormMethod.Post, new { enctype="multipart/form-data" }))
{%>
<%: Html.ValidationSummary(true) %>
<%: ViewData["ErrorMessage"] %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Image) %>
</div>
<div class="editor-field">
<input type="file" id="Image" name="Image" />
<label id="LabelErrorImage" class="errorMessage" />
</div>
<p>
<input type="submit" value="Save" onclick="return Validate(); return false;"/>
</p>
</fieldset>
<% } %>
我想用HttpPostedFileBase類。我的編輯動作:
[Authorize]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(string id, HttpPostedFileBase file, FormCollection formValues)
{
if (ModelState.IsValid)
{
if (file != null && file.ContentLength > 0)
{
CustomHelpers.createFolder();
var tmpPath = MyConfig.UPLOAD_FILE_PATH + "/" + Membership.GetUser().ProviderUserKey.ToString();
var path = Path.Combine(Server.MapPath(MyConfig.UPLOAD_FILE_PATH), "Avatar");
var fileExtension = Path.GetExtension(file.FileName);
file.SaveAs(path);
user.Image = "Avatar";
}
adventureDB.SaveChanges();
return RedirectToAction("Index");
}
}
但我始終有空文件對象,爲什麼?????你有什麼想法,建議爲什麼它可以這樣工作?也許有問題,我如何將文件值傳遞給我的編輯操作?
編輯: IT真的很奇怪,因爲即使當我刪除
using (Html.BeginForm("Index","Profile",FormMethod.Get, new { enctype="multipart/form-data" }))
頁面的源代碼仍然有:
<body>
<form method="post" action="6111e591-b92d-4bcb-b214-ab8f664b35f9" id="form1">
我的意思是我無法改變的標記,但不知道爲什麼:/
是的,我已經改變它,但它仍然爲空:/ – canimbenim 2011-06-08 16:57:23
不,它不是所有的代碼,因爲它是很長的,但我注意到,我在我的視圖中寫什麼並不重要,因爲它總是重定向到功能相同。也許是因爲我使用Master站點,它使用了我不知道的機制? – canimbenim 2011-06-08 18:57:41
進一步更我有在源代碼2點的形式:<形式方法= 「POST」 行動= 「6111e591-b92d-4bcb-B214-ab8f664b35f9」 ID = 「form1中」>