У меня есть форма, которая регистрирует новое событие в таблице событий. В этой форме у меня есть кнопка загрузки, которая загружает файл и сохраняет его в папке с именем Uploaded_Files.
Все работает правильно, нопроблема в том, что:
1) Я хочу, чтобы в текстовом поле отчета указывался путь к файлу во время загрузки файла, чтобы я мог сохранить этот путь в базе данных.
2) Также как можноя загружаю несколько файлов и добавляю их пути в другие текстовые поля, в моем примере это текстовые поля image1 и image2.
Это моя модель
public class events
{
public int Id { get; set; }
public string title { get; set; }
public string report { get; set; }
public string image1 { get; set; }
public string image2 { get; set; }
}
Это мой контроллер:
//To Retrieve list of events//
public ActionResult Index()
{
var evt = _context.evt;
if (evt==null)
{
return Content("No events registered in database");
}
return View(evt);
}
//Registering new event//
public ActionResult Add_New()
{
return View();
}
[HttpPost]
public ActionResult Save(events e)
{
_context.evt.Add(e);
_context.SaveChanges();
return RedirectToAction("Index","Events");
}
// Creating Upload Button //
[HttpPost]
public ActionResult Add_New(HttpPostedFileBase file)
{
try
{
if (file.ContentLength > 0)
{
string filename = Path.GetFileName(file.FileName);
string filepath = Path.Combine(Server.MapPath("~/Uploaded_Files"), filename);
file.SaveAs(filepath);
}
ViewBag.Message = "Uploaded Successfully";
return View();
}
catch
{
ViewBag.Message = "Not uploaded";
return View();
}
}
Это вид:
@using (Html.BeginForm("Add_New", "Events", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div>
@Html.TextBox("file", "", new { type = "file" })
<input type="submit" value="submit" />
@ViewBag.Message
</div>
}
@using (Html.BeginForm("Save", "events"))
{
<div class="form-group">
@Html.LabelFor(a => a.title)
@Html.TextBoxFor(a => a.title, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(a => a.report)
@Html.TextBoxFor(a => a.report, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(a => a.image1)
@Html.TextBoxFor(a => a.image1, new { @class = "form-control"})
</div>
<div class="form-group">
@Html.LabelFor(a => a.image2)
@Html.TextBoxFor(a => a.image2, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
}
Я знаю, что что-то нужно объединить либо в контроллере, либо в представлении между формой и кнопкой загрузки, но я не могу понять, как это сделать.-пишите лучшую логику.
любезно помогите, если у вас есть опыт в этой области.Спасибо