【问题标题】:How can I submit hidden field value when I'm calling my ActionResult from my a href当我从我的 a href 调用 ActionResult 时,如何提交隐藏字段值
【发布时间】:2017-09-20 09:01:52
【问题描述】:

我需要获取请求的url(来自的Page/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
    ...
}

【问题讨论】:

  • 不需要隐藏输入 - 只需使用 "@Url.Action("ApplySelectedLanguage", "Language", new { Lcid = "1050", requestUrl = Request.RawUrl })"

标签: javascript html asp.net asp.net-mvc razor


【解决方案1】:

您应该像这样在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 })"

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 2018-06-07
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多