我在向URL添加条件查询字符串时遇到了一些麻烦。
if the url == domain/controller/action then
do nothing
if the url == domain/controller/action?referenceNumber=xxxx then
url = domain/controller/action?referenceNumber=xxxx&newParameter=yyyy
我试图在没有任何运气的情况下覆盖OnActionExecuting
,而且我对RouteConfig的态度不是很强。
想法?
我试过以下
protected override IAsyncResult BeginExecute(RequestContext requestContext, AsyncCallback callback, object state)
{
var path = requestContext.HttpContext.Request.RawUrl;
if(myCondition)
{
requestContext.HttpContext.RewritePath(string.Format("{0}&newParameter={1}", path, getNewParameter());
}
return base.BeginExecute(requestContext, callback, state);
}
这会更新HttpContext.Request.Url
,但不会反映浏览器中的网址。
如何克服这一挑战?任何线索?
答案 0 :(得分:0)
我能够通过使用以下内容来解决问题...
获取方法
public ActionResult Action(string referenceNumber, string newParameter){...}
POST方法
public ActionResult Action(Object myObject, string newParameter){...}
结果是浏览器显示
域/控制器/动作referenceNumber = XXXX&安培; newParameter = YYYY