Итак, я пытаюсь решить следующую проблему:
У меня есть основное представление под названием 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», которого не существует. Ошибка:
С приведенным выше кодом данные вставляются в мою базу данных, но возвращают мне ошибку 500.
Что я пробовал:
Я пытался вернуть свое представление, жестко закодированное следующим образом: return View("~/Views/ApiBroker/Index.cshtml");, но это дает мне ошибку в моем WebGrid.
Я также пытался использовать «Return View («Index»)», однако это следующая ошибка в моем WebGrid:
Я также пробовал "Вернуть вид("Индекс",ВашаМодель);", это дает мне следующую ошибку:
Надеюсь, кто-то может помочь!





Вы можете вернуть определенные View, если они принадлежат одному и тому же Controller, например:
return View("Index");
Если View принадлежит другому Controller, вам просто нужно указать имя View и имя его папки и вызвать его следующим образом:
return View("../ControllerName/Index");
@NielsStenden Вам нужно вернуть объект класса: return View("Index",api);, а затем в вашем View у вас будет что-то вроде этого: @model ApiRedirect. Если привязка выполнена правильно после вашего вызова Controller, то webgrid должен отображаться правильно, иначе вам придется проверять на уровне контроллера, какие данные заполняются в вашей модели.
return RedirectToAction("YourAction");
или
return RedirectToRoute("YourRouteName");
@NielsStenden Это
BinderExeception, что означает, что вам нужно отправить модель для заполнения вашегоwebgrid. Сделайте что-то вроде:return View("Index",YourModel);