我怎样才能改变MVC动态渲染动作链接的方式吗?
-
21-08-2019 - |
题
我需要改变MVC的渲染动作链接(和形式的和URL的,等等)的基础上配置设置的方式。我写使用MS MVC和我的动作链接需要呈现链接一个Facebook应用程序,以便:
<a href="/MyFBApplication/Home/Index/">home</a>
点击上述链接将浏览到:结果 http://apps.facebook.com/MyFBApplication/Home/Index/一> 的
“MyFBApplication”是facebook的应用程序的名称。 要通过呼叫建立,我开始链接
Html.ActionLink("Home", "Index", "Home")
当用户点击该链接的Facebook然后将使得下盖该链路的请求:
http://www.myapplicationserver.com/facebook/123456 /首页/索引/ 的结果 (123456是客户端ID,并且需要)
然后,从这里的响应被Facebook处理并显示给用户作为:结果 http://apps.facebook.com/MyFBApplication/Home/Index/一> 的
如上面的Facebook请求提到从幕后的页面数据。结果 http://www.myapplicationserver.com/facebook/123456/Home/索引/ 的
的问题是一个呼叫
Html.ActionLink("Home", "Index", "Home")
将呈现导致点击一个链接 http://apps.facebook.com/facebook/123456/Home/索引/ 的
和我需要它导致:点击 http://apps.facebook.com/MyFBApplication/Home/Index/一> 的
我没有得到它正常工作,购买建设一套新的扩展方法。
Html.FacebookActionLink("Home", "Index", "Home")
Html.FacebookBeginForm("Index", "Home")
Html.Facebook(etc)
但是,这有一个“闻”到它。我想找个地方,我可以拦截Html.ActionLink()过程中的管道和改变输出。然后我可以使用所有的标准电话。
谢谢!
解决方案
为什么这个有“闻”?微软建立了ActionLink的方法为扩展方法。如果这些不服务你的目的,你可以写你自己的,就像你做了。
如果你真的想要,我想你可以创建自己的ActionLink的方法的版本过载(只要方法签名也不含糊)。
如果你需要看到MS如何实施ActionLink的扩展的方法,所述LinkExtensions类下检查出的源代码。您可以下载这里。