Как добавить «кнопку загрузки файла» в мою существующую форму и получить первичный ключ этой предыдущей формы в новой таблице базы данных UploadFile? - PullRequest
0 голосов
/ 26 июня 2018

Это мой контроллер, в котором уже существуют следующие поля:

[HttpPost]
public ActionResult Save(Rent Rent)
{
    if (Rent.Id == 0)
        _Context.Rent.Add(Rent);
    else
    {
        var rentInDb = _Context.Rent.Single(c => c.Id == Rent.Id);

        rentInDb.tenantId = Rent.tenantId;
        rentInDb.unitId = Rent.unitId;
        rentInDb.startDate = Rent.startDate;
        rentInDb.endDate = Rent.endDate;
        rentInDb.Amount = Rent.Amount;
        rentInDb.leaseStatus = Rent.leaseStatus;
    }

    _Context.SaveChanges();
    return RedirectToAction("leaseStatus", "Home");
}

Я уже создал uploadFile таблицу, в которой я могу получить его путь при загрузке, но я хочу, чтобы предыдущий идентификатор контроллера сливался с каждой загрузкой файла, и хочу, чтобы предыдущий идентификатор формы в новой базе данных UploadFile, которую я создали!

PS: я добавил предыдущий Id формы в таблицу uploadFile, сначала используя код.

Мне нужен код для моего контроллера

1 Ответ

0 голосов
/ 27 июня 2018

хорошо, поэтому я хотел, чтобы моя форма выглядела так: Я хотел, чтобы существующие поля, такие как tenantId, UnitId, StartDate и т. Д. Из моей предыдущей базы данных, а затем я создал новую базу данных для загрузки файла и сделал мою форму похожей на это !!

Вопрос был в том, как получить идентификатор моей старой базы данных в новую базу данных «FileUpload».

вот так выглядит мой контроллер и Action:

 [HttpPost]
    public ActionResult Save(Rent Rent , FileUpload upload, HttpPostedFileBase file)
    {

        if (Rent.Id == 0)
            _Context.Rent.Add(Rent);

        else
        {
            var rentInDb = _Context.Rent.Single(c => c.Id == Rent.Id);

            rentInDb.tenantId = Rent.tenantId;
            rentInDb.unitId = Rent.unitId;
            rentInDb.startDate = Rent.startDate;
            rentInDb.endDate = Rent.endDate;
            rentInDb.Amount = Rent.Amount;
            rentInDb.leaseStatus = Rent.leaseStatus;

        }

            _Context.SaveChanges();

        var rent = _Context.Rent.Single(r => r.Id == Rent.Id);

        var up = Request.Files["file"];
        if (up.ContentLength > 0) {



            var fileName = Path.GetFileName(file.FileName);
            var guid = Guid.NewGuid().ToString();
            var path = Path.Combine(Server.MapPath("~/uploads"), guid + fileName);
            file.SaveAs(path);
            string fl = path.Substring(path.LastIndexOf("\\"));
            string[] split = fl.Split('\\');
            string newpath = split[1];
            string imagepath = "~/uploads/" + newpath;
            upload.length = imagepath;
            upload.Rent = rent;
            _Context.FileUpload.Add(upload);
            _Context.SaveChanges();

        }
        return RedirectToAction("leaseStatus", "Home");
    }

В этом методе POST существующая форма старой базы данных добавляется с помощью _Context.SaveChanges ();

и после этого идентификатор, который я получил из существующих полей, был сохранен в новой переменной, которую я создал сразу после _Context.SaveChanges ();

и вызвал это значение в коде fileUpload.

И, наконец, вот как я получил свой идентификатор старой базы данных существующей формы в новую таблицу fileUpload !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...