gpt4 book ai didi

c# - 单击提交时从 asp.net mvc 文本框获取值

转载 作者:太空狗 更新时间:2023-10-29 21:25:48 26 4
gpt4 key购买 nike

如何在 asp.net mvc 中检索文本框的值以将值存储到某个变量?

我有一个这样的文本框 <%=Html.TextBox("testbox") %>在索引 View 页面上。

我有一个这样的按钮 <input type="submit" />

我正在使用打开新的 mvc 应用程序时出现的默认 View 页面。

谢谢。

最佳答案

在你的 Controller 中;

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
String g = collection["textFieldname"]
}

或者你可以使用;

TryUpdateModel(modelName);

以上是首选方案。如果您需要有关 TryUpdateModel 的更多信息,请发表评论,我会为您充实它。

编辑:

与其解释它,不如让我简单地向您展示;

在你的 Controller 中:

public class MyFormViewModel
{
public string myInput {get; set;}
}

public ActionResult Search()
{
MyFormViewModel fvm = new MyFormViewModel();
return View(fvm);
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
MyFormViewModel fvm = new MyFormViewModel();
TryUpdateModel<MyFormViewModel>(fvm);

string userInput = fvm.myInput;
}

然后在你看来;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %>

<%= Html.TextBox("myInput", Model.myInput) %>

注意两件事。

该页面继承自您在 Controller 中定义的模型/类。这不是它的最佳位置,但作为一个例子它会做。

另一件事是文本框的名称与模型中的属性相同。在本例中为 myInput。

当 Controller 执行 UpdateModel 时,它会反射(reflect)出来并将文本框名称与表单 View 模型中的字段名称相匹配。

有道理吗?

编辑 2

另外不要忘记将按钮和您的字段包裹在;

<% using (Html.BeginForm()) {%>

关于c# - 单击提交时从 asp.net mvc 文本框获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1355547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com