获取MVC Controller中实际页面的URL

时间:2017-03-07 22:39:03

标签: c# asp.net-mvc

在我的MVC项目中,我有一个'联系我们'在布局页面的页脚上显示,以便“联系我们”#39;表单显示在网站的每个页面上。

每次提交表单时都需要检查,在哪个页面上,我 表示提交“联系我们”的页面的网址。在POST方法中形成。

例如在主页上:

http://www.test.com/myWebSite.Site/Home

我需要get:Home

但问题是,当我提交带有POST请求的表单时,在Action中,Request.Url总是给我:( Controller的根和Action ..)

http://www.test.com/myWebSite.Site/Shared/SubmitContactForm

我认为我需要的是之前的步骤的URL ... 我不知道怎么做,有什么想法吗?

1 个答案:

答案 0 :(得分:1)

只是一个想法(如果我理解你的问题,如果没有道歉):

在您的布局页面联系表单中,添加两个隐藏的输入以传入并使用:

<input type="hidden" name="currentAction" value="@ViewContext.RouteData.Values["Action"].ToString()">

<input type="hidden" id="currentController" value="@ViewContext.RouteData.Values["Controller"].ToString()">

即使您的表单位于共享布局视图

,这也会为您提供准确的控制器和操作