#c# #asp.net #asp.net-mvc #asp.net-mvc-4 #routes
Вопрос:
У меня есть метод контроллера с именем CreatePANApplication
, но я создал страницу просмотра для этого с именем as PANApplication
. Теперь, когда я пытаюсь вызвать этот метод с другой страницы просмотра, как:
// dataTable code block
<td>
@Html.ActionLink("PAN Application", "CreatePANApplication", new { id = item.PANKey }, new { @class = "btn btn-warning" })
</td>
получение ошибки как:
The view 'CreatePANApplication' or its master was not found or no view engine supports the searched locations.
Это означает, что я не должен менять имя своего контроллера и соответствующее название страницы просмотра. но много раз нам приходится менять имя страницы просмотра, что мы можем сделать в это время?
Класс контроллера:
public ActionResult CreatePANApplication(int? id)
{
try
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var data = (from z in db.PANModels
where z.PANKey == id
select z).ToList();
if (data == null)
{
return HttpNotFound();
}
return View(data);
}
catch (Exception)
{
throw;
}
}
Комментарии:
1. Как выглядит контроллер?
2. @AliK Я добавил метод контроллера.
3. Прямо сейчас ваш контроллер будет ожидать представление с именем CreatePANApplication.cshtml. Вы можете называть представление как угодно,например pagepan.cshtml, и вызывать его как возвращаемое представление(«имя страницы», данные).
4. что вы возвращаете из метода действия CreatePANApplication и есть ли у вас файл CreatePANApplication.cshtml в том же каталоге, что и контроллер?
Ответ №1:
если ваше представление все еще находится в папке, названной контроллером, или вы поместили свое представление в общую папку, вы можете использовать это
return View("PANApplication", data);
но если ваше представление находится в другой папке, вам придется использовать полный путь
return View(" ~/Views/folder/PANApplication.cshtml", data);