asp.net mvc 2 - Using RedirectToAction with custom type parameter -


asp.net mvc 2

i have action in identity controller

public actionresult details(string id, messageui message) { 

and i'm trying redirect action controller, don't know how should pass message parameter

i trying with

    var id = "someidvalue"     var message = new messageui("somevalue");     return redirecttoaction("details", "identity", new { id, message}); } 

but message parameter null

that's normal. cannot pass complex objects in urls when redirecting , that's reason why messageui object not received. scalar properties translated &-separated key/value pairs in url.


one possibility pass simple properties of object default model binder can reconstruct @ target location:

var id = "someidvalue" var message = new messageui("somevalue"); return redirecttoaction("details", "identity", new {      id = id,      messageprop1 = message.messageprop1,     messageprop2 = message.messageprop2,     messageprop3 = message.messageprop3, }); 

you pass message id:

var id = "someidvalue"; return redirecttoaction("details", "identity", new {      id = id,      messageid = "somevalue" }); 

and have message object being reconstructed in details action using id:

public actionresult details(string id, string messageid) {     var message = new messageui(messageid);     ... } 

and job done custom model binder messageui type.


another possibility use tempdata or session:

var id = "someidvalue"; tempdata["message"] = new messageui("somevalue"); return redirecttoaction("details", "identity", new { id }); 

and inside details action:

var message = tempdata["message"] messageui; 

Comments

Popular posts from this blog

Javascript line number mapping -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -