Как вернуть основной вид в другое действие в том же контроллере? - PullRequest
1 голос
/ 02 июля 2019

Так что я изо всех сил пытаюсь решить следующую проблему:

У меня есть главное представление, называемое ApiBroker, в этом представлении есть несколько способов что-то сделать с вводом из этого представления.

Например:

    [HttpPost]
    public ActionResult AddApi(ApiRedirect model)
    {
        var data = model;
        try
        {
            List<ApiRedirect> list = dbProducts.ApiRedirects.ToList();
            int companyID = dbProducts.Companies.Where(x => x.CompanyName == model.Company.CompanyName).FirstOrDefault().CompanyID;
            int mappingID = dbProducts.MappingNames.Where(x => x.Name == model.MappingName.Name).FirstOrDefault().MappingID;
            ApiRedirect api = new ApiRedirect();
            api.ApiName = model.ApiName;
            api.CompanyID = companyID;
            api.ApiURL2 = model.ApiURL2;
            api.MappingID = mappingID;
            api.ResponseType = model.ResponseType;
            dbProducts.ApiRedirects.Add(api);
            dbProducts.SaveChanges();
            return View();
        }
        catch (Exception ex){
            throw ex;
        }
    }

Это представление должно возвращать основное представление (индекс), но вместо этого оно пытается вернуть представление «AddApi», которое не существует. Ошибка:

enter image description here

С кодом выше, данные вставляются в мою базу данных, но они возвращают мне ошибку 500.

Что я пробовал:

Я пытался вернуть свое представление жестко запрограммировано так: return View ("~ / Views / ApiBroker / Index.cshtml"); , но это вызывает ошибку в моей WebGrid.

Я также пытался использовать «Return View (« Index »)», однако это моя следующая ошибка в моей WebGrid:

enter image description here

Я также пытался "return View (" Index ", YourModel);" , это дает мне следующую ошибку:

enter image description here

Надеюсь, кто-то может помочь!

Ответы [ 2 ]

0 голосов
/ 02 июля 2019
 return RedirectToAction("YourAction");  

или

return RedirectToRoute("YourRouteName");
0 голосов
/ 02 июля 2019

Вы можете вернуть определенный View, если они принадлежат одному и тому же Controller, например:

return View("Index");

Если View принадлежит другому Controller, вам просто нужно указать имя View и имя его папки и назвать его так:

return View("../ControllerName/Index");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...