如何从查询中请求asp.net核心的指定签名

问题描述 投票:0回答:2

我的控制器中有以下代码:

    [HttpPost]
    [Route("SetLanguage")]
    public IActionResult SetLanguage(string culture, string returnUrl)
    {
        Response.Cookies.Append(
            CookieRequestCultureProvider.DefaultCookieName,
            CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
            new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
        );

        return LocalRedirect(returnUrl);
    }

此代码有一些参数,我不知道如何传递它们。

打算使用此

<form id="selectLanguage" asp-controller="Home" asp-action="SetLanguage" asp-route-returnUrl="@Context.Request.Path" method="post" class="form-horizontal" role="form">
    @Localizer["Language:"] <select name="culture" asp-for="@requestCulture.RequestCulture.UICulture.Name" asp-items="cultureItems">
    </select>
</form>

但是由于缺乏经验,我无法在我的项目中开始使用此代码。

作为解决方案,我将发出POST请求并在附加cookie后更新页面。

@Html.DropDownList("selectLanguage", cultureItems, new { @onchange = send post reqest and update on success })

[谁能解释我tp如何将参数(culturereturnUrl)传递给我的SetLanguage方法?

javascript asp.net post razor drop-down-menu
2个回答
0
投票

您可以使用POST将数据按以下格式JavaScript传送到控制器,>

var data = {
                culture: "culture",
                returnUrl: "returnUrl"
            }
            $.ajax({
                type: "POST",
                url: "https://YourEndPointURL/SetLanguage",
                data: JSON.stringify(data ),
                dataType: "json",
                contentType: "application/json",
                success: function (data) {
                    console.log(data);
                }
            });

0
投票

或者您可以这样实现smth。

© www.soinside.com 2019 - 2024. All rights reserved.