Я установил для enctype: multipart / form-data, пока я отправляю эту форму, Request.ContentType имеет вид: application / x-www-form-urlencoded, и содержимое загрузки не может быть получено из запроса. .files.
Вот мой взгляд:
<% using (Html.BeginForm("Import", "Content", FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
<p>
<%= Html.CheckBox("DeleteExisting")%> Delete Existing Records?
</p>
<p>
<input type="file" name="FileUpload" id="FileUpload" /> Select a dump file.
</p>
<p>
<input type="submit" value="Import Now" />
</p>
<% } %>
Вот мое действие:
[HttpPost]
public ActionResult Import(FormCollection fc)
{
string chkDelete = fc["DeleteExisting"];
//string filename = fc["FileUpload"];
if (!chkDelete.Equals("false"))
{
//TODO: delete existing records, if specified
}
var inputFile = Request.Files["FileUpload"];
return View();
}
В PostBack переменная "fc" заполнена, и я могу получить доступ к значению флажка и получить имя файла для загрузки.
Почему мой энктип будет игнорироваться?
Я пытался вручную поместить тег формы в представление с атрибутами в разных позициях, но это не имело значения.
Единственное, что я могу подумать, это то, что эта форма импорта вложена в форму MasterPage, но, похоже, это не должно быть проблемой. Кроме того, я правильно приложил эту форму.
Есть предложения?