使用asp.net MVC 3,我想在Controller的方法的每个请求上添加一个查询字符串,使用以下代码,查询字符串没有被添加到URL。
知道我做错了什么或任何其他替代方法?
public ActionResult Index(string uniquestudentreference)
{
return View(eventListVM);
}
public class UserAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.ActionParameters["uniquestudentreference"] = Various.GetGivenNameUser();
}
}
答案 0 :(得分:1)
如果希望uniquestudentreference
参数在控制器操作中具有值,则应该使用正确的URL调用控制器操作,如:
http://www.someurl.com/<controller>/Index/<uniquestudentreference>
如果您想影响通过网址传递信息的方式,您应该考虑自定义路线表(位于Global.asax
)
答案 1 :(得分:0)
您要在此处执行的操作是将值设置为ActionResult中ControllerContext的ViewData或TempData,然后在方法中引用它。这是比querystring传递它更好的方法,也更安全(避免用户能够操纵值)。那或将值存储在Session中。