假设我在谈论ASP.NET MVC 3应用程序,那么场景就像
http://localhost:60088/Example?param1=test123
http://localhost:60088/Example/DoSomethign
的Ajax调用所以,我的困境是在DoSomething
控制器操作中我需要获取在第一步中传递的param1
参数。
我的第一步是做这样的事情:
public ActionResult DoSomething()
{
...
Uri baseUrl = this.Request.UrlReferrer;
// Somehow extract the parameter from baseUrl
...
}
但我不确定这根本不是一个好主意......
问题:
可以安全地假设this.Request.UrlReferrer
总是拥有以非回调方式调用的网址(即使我在{{1}之后再制作了几个callbaks第一次回调)?
有没有更好的方法来实现我想要做的事情?
答案 0 :(得分:3)
没有;你不能假设引用者总是存在。
相反,您应该将原始URL作为参数包含在AJAX请求中。
答案 1 :(得分:0)
在您返回视图的操作中,您可以将param1
添加到ViewBag
,如下所示:
public ActionResult Example(string param1)
{
ViewBag.Param1 = param1;
return View();
}
然后在ajax调用中,只需将ViewBag.Param1
作为路由值传递。它有时可能是空的,但这不应该伤害任何东西。