如何将隐藏字段值访问私有方法?

时间:2018-10-30 14:37:48

标签: c# jquery .net asp.net-mvc c#-4.0

我在按钮上单击了mvc应用程序,但是我正在更改隐藏字段的值,但是我无法将Request.Form["hiddenfield"]用作私有方法,

有任何使用方式吗?

Index.cshtml

<input type="hidden" name="hiddenfield" id="hiddenfield" value="true">

            <button type="button" id="stop" class="btn btn-success">

<script>
    if ($('#stop')) {
        $('#stop').click(function (e) {
            document.getElementById('hiddenfield').value = "false";
        });
    }
</script>

HomeController.cs

在私有方法中,我想获取此更改的值,以执行其他操作。

 private async Task Process()
        {
//unable to get hidden value using var test= Request.Form["hiddenfield"];

因为它不是控制器方法。但是如何检查此更改后的隐藏字段值?

单击按钮后,我无法调用任何mvc控制器方法,因为它已经花了很多时间才能敲打该方法,因为另一个执行已在进行中。

3 个答案:

答案 0 :(得分:2)

MVC框架根据请求实例化控制器 并基于路由配置调用方法。

您可以在公共方法内调用私有方法,并通过HttpContext.Current.Request访问请求。

在第一个请求仍在运行时发出第二个请求应该没有任何问题,但是它们将是同一控制器的不同实例。

答案 1 :(得分:1)

要查看服务器上的值,我将使用HTML帮助程序

@Html.HiddenFor(model => model.SomeId, new { @id = "hfSomeId" })

@Html.Hidden("hfSomeId", someValue, new { @id = "hfSomeId" }

答案 2 :(得分:1)

据我所知,您不能在MVC的私有方法中访问隐藏字段。

您将需要在控制器中创建一个公共动作,以便发布更新后的值(隐藏字段)。然后,从控制器操作中可以访问私有方法。

类似:

public ActionResult Update(bool hiddenField)
{
    // do something with hiddenField and call private method Process()
}