当我从我的 href 调用我的操作结果时,如何提交隐藏字段值



我需要获取请求URL(页面/actionMethod的URL来自)

当我单击我的任何一个a href时,您都可以从我的Language控制器来调用ApplySelectedLanguage ActionResult

我想通过添加一个将要提交的隐藏字段来解决此问题,我可以轻松阅读路径,这样的东西:" <%= 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
    ...
}

您应该在 href属性中添加 Html.Hidden("requestUrl", Request.RawUrl)值:

<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 })"

相关内容

  • 没有找到相关文章

最新更新