정상입니다. 리디렉션 할 때 URL에 복잡한 객체를 전달할 수 없으므로 MessageUi
객체가 수신되지 않습니다. URL의 &
- 분리 된 키/값 쌍으로 변환되는 스칼라 속성 만
var id = "someidvalue"
var message = new MessageUi("somevalue");
return RedirectToAction("Details", "Identity", new {
id = id,
MessageProp1 = message.MessageProp1,
MessageProp2 = message.MessageProp2,
MessageProp3 = message.MessageProp3,
});
또한 단지를 전달할 수 : 기본 모델 바인더가 대상 위치에 그것을 재구성 할 수 있도록
하나의 가능성이 개체의 모든 단순 속성을 통과하는 것 메시지 ID :
var id = "someidvalue";
return RedirectToAction("Details", "Identity", new {
id = id,
messageId = "somevalue"
});
메시지 개체가 세부 동작에서 재구성되고 있습니다. 그의 ID :
public ActionResult Details(string id, string messageId)
{
var message = new MessageUi(messageId);
...
}
이 작업이 크게 MessageUi
유형에 대한 사용자 정의 모델 바인더에 의해 수행 될 수있다.
또 다른 가능성은 TempData
또는 Session
을 사용하는 것입니다 : 세부 동작 내부
var id = "someidvalue";
TempData["message"] = new MessageUi("somevalue");
return RedirectToAction("Details", "Identity", new { id });
다음 :
사용자 정의 모델 바인더를 해결
var message = TempData["message"] as MessageUi;
, 감사합니다! –