我的觀點有兩個下拉列表和一個提交按鈕,如果沒有選擇任何值,並且如果表單使用GET方法獲取sumbited,那麼我的URL將是http://localhost:53372/question/index?Index=List&type=&stage=&mid=1&mod=5
。URL中的查詢字符串是否允許?
但讀音字施加一個ActionFilter與OnActionExcuting()
覆蓋方法。所以提交表單網址後就像http://localhost:53372/question/index?index=List&mid=1&mod=5
。
,其中另外兩個查詢字符串沒有了嗎?
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.RequestContext.HttpContext.Request.QueryString["mid"] == null || filterContext.RequestContext.HttpContext.Request.QueryString["mod"] == null)
{
mid = Convert.ToString(HttpUtility.ParseQueryString(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Query)["mid"]);
mod = Convert.ToString(HttpUtility.ParseQueryString(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Query)["mod"]);
if (!string.IsNullOrEmpty(mid) || !string.IsNullOrEmpty(mod))
{
RouteValueDictionary redirecttargetDictionary = new RouteValueDictionary();
NameValueCollection Qstr = null;
if (filterContext.HttpContext.Request.RequestType == "GET")
{
Qstr = HttpUtility.ParseQueryString(filterContext.HttpContext.Request.Url.Query);
foreach (string item in Qstr)
{
redirecttargetDictionary.Add(item, Qstr[item]);
}
if (Qstr["mid"] == null)
{
redirecttargetDictionary.Add("mid", mid);
}
if (Qstr["mod"] == null)
{
redirecttargetDictionary.Add("mod", mod);
}
filterContext.Result = new RedirectToRouteResult(redirecttargetDictionary);
}
}
}
}
,但如果我選擇下拉值,那麼所有的queryString是URL。
QUERYSTRING沒有價值stage=&type=
是不允許的?
我不知道我明白你爲什麼要處理查詢字符串很麻煩。也許你可以解釋一下嗎? –