Допустим, в приложении ASP.NET MVC у вас есть простой класс модели Blog и вы обновляете запись с помощью действия редактирования.
[HttpPost]
public async Task<IActionResult> Edit(int id, [Bind("Id,Title")] Blog blog)
{
// controller logic here
return View(blog);
}
Это возвращает (название по умолчанию) Index.cshtml представление Blog. Как бы вы заставили это вернуть Details.cshtml вид того же Blog элемента, который был отредактирован? Я чувствую, что это простое изменение, но я не смог найти ответ на этот вопрос, и я не совсем уверен, с чего начать.





вы можете вернуть подробное представление по модели блога
return View("Detail",blog);
Спасибо. В этом случае мне нужно было указать полный путь, например, return View("~/Views/Blogs/Details.cshtml", blog).
Рад, что смог помочь. лучший способ — использовать nameof, чтобы предотвратить синтаксическую ошибку. например return View(nameof(Details),blog);
Если в вашем Detail.cshtml есть действие GET в контроллере, для большей безопасности вы также можете использовать отражение:
return View(nameof(Detail),blog);
Имейте в виду, что в таком случае Details.cshtml должен использовать тот же объект модели, который вы пытаетесь вернуть, например. @model MyApp.Models.Blog
Спасибо за это, особенно последний пункт. Я получаю внутреннюю ошибку сервера, потому что, хотя маршрут кажется правильным, мое представление Details.cshtml вызывает свойство навигации Blog, поэтому я получаю исключение нулевой ссылки «ссылка на объект не установлена на экземпляр объекта».
Насколько я знаю, это должно вернуться в режим редактирования, а не в индекс. Что-то здесь не так.