【问题标题】:How do I store the value of a @Html.TextBox to a variable如何将 @Html.TextBox 的值存储到变量中
【发布时间】:2020-01-11 19:04:01
【问题描述】:

我是 Razor 和 Asp.Net 的新手。我主要是 Winforms 开发人员。我必须说我不喜欢我在 ASP 中看到的东西,至少可以说过于复杂。无论如何,我想从 @Html.TextBox 中获取值并将其存储到变量中。我在这里搜索了一个找不到解决方案。必须有一种简单的方法来做到这一点。

我一直在尝试使用 Request.Froms 提取价值,但一直崩溃

        @Html.TextBox("test")
        @Html.TextBox("test2")
        @{
            var z = Request.Form["test"];
            var x = Request.Form["test2"];
         }

我想要的只是将输入的值存储到 z 和 x。意思是如果我在 test 中输入 2,在 test2 中输入 3,我想要 z = 2 和 x = 3。

【问题讨论】:

  • 请注意,ASP(以及所有没有 JavaScript 的网络表单)是无状态的。 Razor 代码用于生成页面,并且在页面显示时不会运行。如果您希望客户端根据控件与控件的交互进行更改,您可以使用在客户端上执行的 JavaScript 或将表单的一小部分发送回服务器并动态更新结果的 AJAX。
  • 我上面的评论对于一个习惯于控件和代码之间持续反馈的winform开发者来说是一个完整的范式转变。不要期望对你来说是直观的。

标签: c# html asp.net razor


【解决方案1】:

根据您的用例,有几种获取值的方法:

如果您需要前端的值(例如无需重新加载页面),您可以使用 JavaScript/jQuery 获取文本框的值。那是因为当用户与输入交互时,Razor 代码已经被执行并打开,例如转换成 HTML(另见question)。您可以使用jQuery.change() 更改输入时设置变量,如下所示:

<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
    var x = null;
    var y = null;
    $(document).ready(function () {
        $("#test").change(function () {
            x = $("#test").val();
            alert(x);
        });
        $("#test2").change(function () {
            y = $("#test2").val();
            alert(y);
        });
    });
</script>

如果在重新加载页面后获得值就足够了,您可以将输入放入表单中,然后将其提交给控制器,其中值在请求中可用或使用模型绑定(请参阅此 @有关如何在 ASP.NET Core MVC 中执行此操作的示例,请参阅 987654324@)。您的场景的基本示例:

在视图中:

<form asp-controller="Home" asp-action="Test" method="post">
    @Html.TextBox("test")
    @Html.TextBox("test2")
    <button type="submit">Submit</button>
</form>

Home 控制器中(请注意,您可以在此处使用Request 访问输入):

[HttpPost]
public ActionResult Test()
{
    var x = Request.Form["test"].First();
    var y = Request.Form["test2"].First();

    return RedirectToAction("Index");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2019-11-24
    相关资源
    最近更新 更多