Моего приложением имеет собственный маршрут, который выглядит следующим образом:ASP.NET MVC - Вернуться Просмотр с клиентами Маршрутом
routes.MapRoute(
name: "ProjectDocument",
url: "Project/{projectid}/{controller}/{action}/{id}",
defaults: new { controller = "Document", action = "Index", projectid = 0, id = UrlParameter.Optional }
);
В принципе, есть несколько проектов, и каждый проект может иметь документы. Документы могут иметь одинаковый идентификатор, поэтому мне нужна комбинация projectid и documentid для получения правильного документа.
Я создал вид редактирования («/ Project/101/Document/Edit/78»). Когда пользователь отправляет форму, я сначала проверяю ModelState в моем контроллере «Документ». Если это не удается, я хочу вернуть модель/modelstate в представление, чтобы показать ошибки. При нормальной маршрутизации, я бы просто использовать
if (!ModelState.IsValid)
{
return View(model);
}
, но это не работает с пользовательским маршрутом, поскольку он возвращает «Документ/Edit/78» (без таможенной маршрутизации).
Может ли кто-нибудь указать мне в правильном направлении, как бы я вернул полный пользовательский маршрут этой ошибки?
Благодаря
ОБНОВЛЕНО НА ЗАПРОС
В моем контроллере Документы
GET
public async Task<ActionResult> Edit(int projectid, int id)
{
...
POST
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(ProjectDocument projectdocument)
{
...
Что такое подписи к вашим методам GET и POST для метода 'Edit()'? –
[HttpPost] [ValidateAntiForgeryToken] общественного асинхронной Задача Edit (ProjectDocument projectdocument) –
Измените вопрос (не в комментариях), и включают в себя подпись для ГЭТ, а –