我需要获取请求网址(Page / ActionMethod的网址来自)
当我点击a href
我从我的ApplySelectedLanguage
控制器中呼叫ActionResult
Language
时,你可以看到任何人。
我想通过添加一个可以提交的隐藏字段来解决这个问题,我可以轻松地读取路径,
像这样:“<%= Html.Hidden("requestUrl", Request.RawUrl) %>
”
但是我不知道这个例子在哪个方面可以适用,所以我可以把它发回去
<ul class="dropdown-menu custom-dropdown-menu">
<li><a href="@Url.Action("ApplySelectedLanguage", "Language", new { Lcid = "1050" })"><%= Html.Hidden("requestUrl", Request.RawUrl) %>EN</a></li>
<li><a href="@Url.Action("ApplySelectedLanguage", "Language", new { Lcid = "3098" })"><%= Html.Hidden("requestUrl", Request.RawUrl) %>DE</a></li>
</ul>
我知道可以使用
在服务器端解决 HttpContext.Request.UrlReferrer
,
但我想用隐藏的字段来解决它。
[HttpPost]
public ActionResult ApplySelectedLanguage(string requestUrl, int Lcid)
{
// requestUrl will contain the url of the page used to
// render the form
...
}
答案 0 :(得分:0)
您应该在Html.Hidden("requestUrl", Request.RawUrl)
属性中添加href
值,如下所示:
<script>
$(document).ready(function () {
$('.dropdown-menu.custom-dropdown-menu').find('a').attr("href", function () {
return this.href + $('#requestUrl').val();
});
});
</script>
但正如@Stephen Muecke所说,更好的方法是将requestUrl
添加到@Url.Action
,如下所示:
href = "@Url.Action("ApplySelectedLanguage", "Language", new { Lcid = "1050", requestUrl = Request.RawUrl })"