C# 在回调中获取原始URL
假设我说的是一个ASP.NET MVC 3应用程序,该场景类似于C# 在回调中获取原始URL,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,假设我说的是一个ASP.NET MVC 3应用程序,该场景类似于 我浏览到URLhttp://localhost:60088/Example?param1=test123返回一个视图 接下来,我单击一个按钮,该按钮触发对URL的Ajax调用http://localhost:60088/Example/DoSomethign返回JSON字符串的 因此,我的困境是,在DoSomething控制器操作中,我需要获得在第一步中传递的param1参数 我的第一步是这样做: public ActionRes
http://localhost:60088/Example?param1=test123
返回一个视图http://localhost:60088/Example/DoSomethign
返回JSON字符串的DoSomething
控制器操作中,我需要获得在第一步中传递的param1
参数
我的第一步是这样做:
public ActionResult DoSomething()
{
...
Uri baseUrl = this.Request.UrlReferrer;
// Somehow extract the parameter from baseUrl
...
}
但我不确定这是否是个好主意
问题:
this.Request.urlReferer
将始终具有以非回调方式调用的URL(即使我在\u DoSomething\u
第一次回调后进行了多次回调)没有;你不能假设推荐人总是存在的
相反,您应该将原始URL作为参数包含在AJAX请求中;你不能假设推荐人总是存在的
相反,您应该将原始URL作为参数包含在AJAX请求中。在返回视图的操作中,您可以将
param1
添加到ViewBag
,如下所示:
public ActionResult DoSomething()
{
...
Uri baseUrl = this.Request.UrlReferrer;
// Somehow extract the parameter from baseUrl
...
}
public ActionResult示例(字符串param1)
{
ViewBag.Param1=Param1;
返回视图();
}
然后在ajax调用中,只需将
ViewBag.Param1
作为路由值传递。它有时可能是空的,但这不会造成任何影响。在返回视图的操作中,您可以将参数1
添加到视图包中,如下所示:
public ActionResult DoSomething()
{
...
Uri baseUrl = this.Request.UrlReferrer;
// Somehow extract the parameter from baseUrl
...
}
public ActionResult示例(字符串param1)
{
ViewBag.Param1=Param1;
返回视图();
}
然后在ajax调用中,只需将ViewBag.Param1
作为路由值传递。它有时可能是空的,但这不会有任何影响。:(…我怀疑这就是答案。遗憾的是,我需要在应用程序的多个不同回调中执行此操作,因此我可能会停止在会话对象上保留参数…无论如何,我将不回答此问题,以查看是否有其他想法:(…我想这就是答案。遗憾的是,我需要在应用程序的多个不同回调中执行此操作,因此可能我将结束会话对象上的参数持久化…无论如何,我将不回答这个问题,以查看是否出现其他想法