Как создать методы GET и POST «CreateOrEdit ()» для перенаправления в CreateOrEdit.cshtml как при нажатии на «Редактировать», так и при создании «Создать»? - PullRequest
1 голос
/ 12 октября 2019

Я пытаюсь настроить метод POST и GET с именем CreateOrEdit (int id, Request request) внутри контроллера, чтобы, находясь в представлении Index, представляющем собой список запросов, сгенерированных из таблицы SQL, я нажимал либона кнопке «Правка» справа от каждой строки или на кнопке «Создать новый» я перенаправлен в тот же самый вид, который я назвал CreateOrEdit.cshtml. Мне удалось выполнить настройку на RouteConfig.cs, но я не знаю, как придумать условие «если - еще», чтобы проверить, является ли id нулевым или числовым. Кто-то может помочь мне решить эту проблему?

P. s .: Может быть, это легко для детей, но сегодня мой девятый день, как для разработчиков() Методы GET и POST пытались добавить условие, чтобы узнать, является ли id! = Null, но это, похоже, не помогает.

[HttpGet]
public ActionResult CreateOrEdit(int? id)
{
    return View();
}

[HttpPost]
public ActionResult CreateOrEdit(int? id, Request request)
{       
    if (/* id is not null (Edit has been clicked) */)
        {
            try
            {
                using (DbModels dbModel = new DbModels())
                {
                    dbModel.Requests.Add(request);
                    dbModel.SaveChanges();
                }

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        else
        {
            try
            {
                // Ketu shtojme logjiken e update-imit
                using (DbModels dbModel = new DbModels())
                {
                    dbModel.Entry(request).State = System.Data.EntityState.Modified;
                    dbModel.SaveChanges();
                }

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    return View();
}

1 Ответ

0 голосов
/ 12 октября 2019

сначала ваше состояние не так. так что просто измените свое состояние и попробуйте.

 [HttpPost]
    public ActionResult CreateOrEdit(int? id, Request request)
    {

        if (id == null)
            {
                try
                {
                    using (DbModels dbModel = new DbModels())
                    {
                        dbModel.Requests.Add(request);
                        dbModel.SaveChanges();
                    }

                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
            else
            {
                try
                {
                    // Ketu shtojme logjiken e update-imit
                    using (DbModels dbModel = new DbModels())
                    {
                        dbModel.Entry(request).State = System.Data.EntityState.Modified;
                        dbModel.SaveChanges();
                    }

                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
        return View();
    }**strong text**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...