У нас очень простая форма с вводом файла. Когда мы публикуем форму, мы можем обрабатывать другой элемент из модели. Но вход файла всегда возвращает значение null. Кстати, мы используем наш взгляд и контроллер в Telerik Sitefinity в качестве настраиваемого элемента управления. Это может быть связано с этим, потому что мы не смогли найти решения.Вход файла с HttpPostedFileBase возвращает всегда null
Вот вид кода
@using (Html.BeginForm("Index", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<div class="form">
<dl>
<dd>
@Html.LabelFor(model => model.ShareRecipe.Name)
@Html.EditorFor(model => model.ShareRecipe.Name)
</dd>
<dd>
@Html.LabelFor(model => model.ShareRecipe.EmailAddress)
@Html.EditorFor(model => model.ShareRecipe.EmailAddress)
</dd>
<dd>
@Html.LabelFor(model => model.ShareRecipe.RecipeArea)
@Html.EditorFor(model => model.ShareRecipe.RecipeArea)
</dd>
<dd>
<input type="file" name="fileUpload" id="fileUpload" />
</dd>
<dd class="last">
<input type="submit" class="btn btn-danger" onclick="return ValidateForm();" value="Send" /></dd>
</dl>
</div>
}
Вот наша сторона контроллера.
[HttpPost]
public ActionResult Index(ShareRecipeModel model, HttpPostedFileBase fileUpload, FormCollection values)
{
if (fileUpload != null && fileUpload.ContentLength > 0)
{
var fileName = Path.GetFileName(fileUpload.FileName);
var path = Path.Combine(Server.MapPath("~/img/"), fileName);
fileUpload.SaveAs(path);
model.ImageUrl = fileName;
}
}
Мы также рекомендуем публиковать сообщения с помощью основного тега формы. :
<form method="post" enctype="multipart/form-data"></form>
не работает. Также в Html.BeginForm мы попробовали весь индекс вариации и имя контроллера, как:
null,null
"Index","ShareRecipeController"
т.д.
В конце я хотел бы дать информацию об использовании таможенного контроля в Telerik Sitefinity мы имеем эту линию на нашем контроллере:
[ControllerToolboxItem(Name = "ShareRecipe", Title = "Share Your Recipe", SectionName = "MvcWidgets")]
public class ShareRecipeController : BaseController
Это может быть большим для нас, если кто-нибудь есть какие-либо идеи, спасибо заранее, Serhad.