Можем ли мы передать модель в качестве параметра в RedirectToAction?

Я хочу знать, есть какая-либо техника, поэтому мы можем передать Model в качестве параметра в RedirectToAction

Например:

 public class Student{ public int Id{get;set;} public string Name{get;set;} } 

controller

 public class StudentController : Controller { public ActionResult FillStudent() { return View(); } [HttpPost] public ActionResult FillStudent(Student student1) { return RedirectToAction("GetStudent","Student",new{student=student1}); } public ActionResult GetStudent(Student student) { return View(); } } 

Мой вопрос. Могу ли я передать студенческую модель в RedirectToAction?

Использование TempData

Представляет dataset, которые сохраняются только с одного запроса на следующий

 [HttpPost] public ActionResult FillStudent(Student student1) { TempData["student"]= new Student(); return RedirectToAction("GetStudent","Student"); } [HttpGet] public ActionResult GetStudent(Student passedStd) { Student std=(Student)TempData["student"]; return View(); } 

Альтернативный путь Передача данных с помощью строки запроса

 return RedirectToAction("GetStudent","Student", new {Name="John", Class="clsz"}); 

Это приведет к генерации запроса GET, такого как Student/GetStudent?Name=John & Class=clsz

Убедитесь, что метод, который вы хотите перенаправить, украшен [HttpGet] поскольку вышеуказанный RedirectToAction выдаст запрос GET с кодом статуса HTTP 302 Found (обычный способ выполнения перенаправления URL)

Просто вызовите действие без необходимости redirect to action или new ключевого слова для модели.

  [HttpPost] public ActionResult FillStudent(Student student1) { return GetStudent(student1); //this will also work } public ActionResult GetStudent(Student student) { return View(student); } 

Да, вы можете передать модель, которую вы показали, используя

 return RedirectToAction("GetStudent", "Student", student1 ); 

предполагая, что student1 является примером Student

который будет генерировать следующий URL-адрес (при условии, что вы используете маршруты по умолчанию, а значение student1ID=4 и Name="Amit" )

.../Student/GetStudent/4?Name=Amit

Внутренне метод RedirectToAction() строит RouteValueDictionary с использованием значения .ToString() каждого свойства в модели. Однако привязка будет работать только в том случае, если все свойства в модели являются простыми свойствами, и она терпит неудачу, если какие-либо свойства являются сложными объектами или наборами, потому что метод не использует рекурсию. Если, например, Student содержал свойство List Subjects , то это свойство привело бы к строке строки запроса

....&Subjects=System.Collections.Generic.List'1[System.String]

и привязка завершится с ошибкой, и это свойство будет null

  [HttpPost] public async Task Capture(string imageData) { if (imageData.Length > 0) { var imageBytes = Convert.FromBase64String(imageData); using (var stream = new MemoryStream(imageBytes)) { var result = (JsonResult)await IdentifyFace(stream); var serializer = new JavaScriptSerializer(); var faceRecon = serializer.Deserialize(serializer.Serialize(result.Data)); if (faceRecon.Success) return RedirectToAction("Index", "Auth", new { param = serializer.Serialize(result.Data) }); } } return Json(new { success = false, responseText = "Der opstod en fejl - Intet billede, manglede data." }, JsonRequestBehavior.AllowGet); } // GET: Auth [HttpGet] public ActionResult Index(string param) { var serializer = new JavaScriptSerializer(); var faceRecon = serializer.Deserialize(param); return View(faceRecon); } 

я нашел что-то вроде этого, помогает избавиться от жестко закодированных тегов tempdata

 public class AccountController : Controller { [HttpGet] public ActionResult Index(IndexPresentationModel model) { return View(model); } [HttpPost] public ActionResult Save(SaveUpdateModel model) { // save the information var presentationModel = new IndexPresentationModel(); presentationModel.Message = model.Message; return this.RedirectToAction(c => c.Index(presentationModel)); } } 
  • Может ли Spring Security использовать @PreAuthorize для методов весенних controllerов?
  • ASP.NET MVC. Должна ли существовать бизнес-логика в controllerах?
  • Angularjs: Служба, которая обслуживает несколько URL-адресов ресурсов / источников данных?
  • Как найти все controllerы в Spring MVC?
  • Лучшее место для установки CurrentCulture для многоязычных веб-приложений ASP.NET MVC
  • Проблемы с вызовом метода столбца controllerа
  • В Spring MVC, как я могу установить заголовок типа mime при использовании @ResponseBody
  • Жирные модели, тощие controllerы и шаблон проектирования MVC
  • Как создать несколько controllerов javafx с разными файлами fxml?
  • Избегайте прокрутки жесткого диска при загрузке
  • JavaFX - Как использовать метод в controllerе с другого controllerа?
  • Interesting Posts

    Как программно запускать разрешение на запуск программного обеспечения MIUI Security?

    Формат строкового формата

    Как перейти к новому окну браузера, который открывается после нажатия кнопки?

    Как удалить «onclick» с помощью JQuery?

    Java 8: Рассчитать разницу между двумя LocalDateTime

    Могу ли я появиться в Specific ViewController?

    Почему шаблон функции не может быть частично специализированным?

    java.lang.IllegalStateException: не для streamа приложений FX; currentThread = Thread-4

    Специализированная специализированная специализация classа, в которой шаблонный шаблон является шаблоном

    Как получить список файлов с определенным расширением в данной папке?

    Клонирование 2,5-дюймового жесткого диска для ноутбука и SDD на нескольких ноутбуках?

    Как установить разделитель тысяч в Java?

    Какой самый надежный способ эффективного анализа CSV с помощью awk?

    Ячейки показывают формулу, а не результат формулы

    Каков наилучший тип данных для использования в c #?

    Давайте будем гением компьютера.