0

使用 asp.net MVC 3,我想在控制器方法的每个请求上添加一个查询字符串,使用以下代码,查询字符串不会被添加到 URL。

知道我做错了什么或任何其他替代方法吗?

  public ActionResult Index(string uniquestudentreference)
    {
        return View(eventListVM);
    }

 public class UserAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.ActionParameters["uniquestudentreference"] = Various.GetGivenNameUser();
        }
    }
4

2 回答 2

1

如果您希望uniquestudentreference参数在控制器操作中具有值,则只需使用正确的 url 调用控制器操作,例如:

http://www.someurl.com/<controller>/Index/<uniquestudentreference>

如果您想影响通过 url 传递信息的方式,您应该考虑自定义路由表(位于Global.asax

您可以在此处阅读更多相关信息:http ://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs

于 2013-05-24T06:24:40.387 回答
0

这里要做的就是在ActionResult中将值设置为ControllerContext的ViewData或者TempData,然后在方法中引用。这是一种比查询字符串更好的传递方式,也更安全(避免用户能够操纵值)。或者将值存储在 Session 中。

于 2013-05-25T22:29:47.143 回答