【发布时间】:2015-04-28 16:10:54
【问题描述】:
我想在
中检索 ActionExecutingContext 的实例public ActionResult Contact2(字符串一,字符串二)
而不是在albumAttribute类中。
有可能吗?
谢谢!
[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);
*/
}
}
【问题讨论】:
-
你到底打算用它做什么?如果您需要获取 Request 和 Response 对象,它们可以作为控制器属性直接访问
-
简单的解释,它与一个大项目的算法有关。这个线程中的这个项目是大项目的一个简单示例。
-
我希望在 actionresult contact2 中激活专辑属性中的代码,但我在 ActionResult 中找不到 ActionExecutingContext 的实例。
标签: c# asp.net-mvc