i retrieve instance of actionexecutingcontext inside of
public actionresult contact2(string one, string two)
and not in class albumattribute.
is possible it?
thanks!
[httppost] [album] public actionresult contact2(string one, string two) { viewbag.message = "your contact page."; var ss = response.status; var genres = new list<genre> { new genre { name = "disco"}, new genre { name = "jazz"}, new genre { name = "rock"} }; //return view(genres); //return view("contact2", genres); return view("contact22", genres); } public class albumattribute : actionfilterattribute { public override void onactionexecuting(actionexecutingcontext filtercontext) { httprequestbase req = filtercontext.httpcontext.request; httpresponsebase res = filtercontext.httpcontext.response; uribuilder uribuilder = new uribuilder("http://" + req.url.authority + req.url.localpath); namevaluecollection query = httputility.parsequerystring(uribuilder.query); query.add("album", "first"); uribuilder.query = query.tostring(); string url = req.url.absolutepath.tostring(); res.redirect(uribuilder.uri.originalstring); base.onactionexecuting(filtercontext); /* uribuilder uribuilder = new uribuilder("http://" + req.url.authority + "/home/about"); res.redirect(uribuilder.uri.originalstring); base.onactionexecuting(filtercontext); */ } }
based on comments:
action filters execute prior actions inside action won't able use base.onactionexecuting(filtercontext)
.
other code that's attached in image executed without actionexecutingcontext
object, add action , getting request , response objects use response
, request
controller properties. can use
return this.redirect(yoururl);
instead of res.redirect(...)
[httppost] [album] public actionresult contact2(string one, string two) { var req = this.request; var res = this.response; uribuilder uribuilder = new uribuilder("http://" + req.url.authority + req.url.localpath); namevaluecollection query = httputility.parsequerystring(uribuilder.query); query.add("album", "first"); uribuilder.query = query.tostring(); string url = req.url.absolutepath.tostring(); return this.redirect(uribuilder.uri.originalstring); }