7

我想在控制器中获取 HTML 文本框值。下面是我的查看代码

@using (Html.BeginForm("SaveValues", "TestGrid",FormMethod.Post))
{
<table>
 <tr>
    <td>Customer Name</td>
    <td>
        <input id="txtClientName" type="text" />
     </td>
    <td>Address</td>
    <td>
        <input id="txtAddress" type="text" /></td>
    <td>
        <input id="btnSubmit" type="submit" value="Submit" /></td>
    </tr>
</table>}

请检查下面的控制器代码以获取值

[HttpPost]
    public ActionResult SaveValues(FormCollection collection)
    {
        string name = collection.Get("txtClientName");
        string address = collection.Get("txtAddress");
        return View();
    }

我得到空值

4

5 回答 5

7

将名称属性添加到您的输入字段,例如:

<input id="txtClientName" name="txtClientName" type="text" />
于 2013-04-01T06:37:38.383 回答
7

如果您在视图中声明所有控件

@using (Html.BeginForm())
{
//Controls...
}

ASP.NET(WebPages、MVC、RAZOR)使用 HTTP 协议作为客户端和服务器之间交互的基础。为了使 HTTP 将客户端值传递到服务器端,所有 HTML 元素都必须定义名称属性。HTML 元素中的 id 属性仅供前端使用。(CSS、JavaScript、JQuery 等)。有关工作示例,请参见下面的代码行;

<input type="text" name="zzzz" id="xxxx"/>

然后在控制器中,您可以使用 FormCollection 对象访问控件。它包括使用名称属性描述的所有控件。

//
// POST:
[HttpPost]
public ActionResult CreatePortal(FormCollection formCollection)
{
    // You can access your controls' values as the line below.
    string txtValue = formCollection["zzzz"]; 

    //Here is you code...
}
于 2015-05-14T17:01:21.410 回答
1

要通过表单集合获取控制器中的 HTML 控件值,您需要在 HTML 控件中添加“名称”属性。

于 2014-02-10T12:40:36.920 回答
0

我 Asp.net MVC Html.BeginForm 使用 html 元素的 name 属性进行序列化。然后你必须填写 html 元素的 name 属性

于 2013-04-01T08:22:39.740 回答
0

尝试这个:

Request.Form["controlID"]
于 2014-02-10T12:16:36.777 回答