如何获得提交的表格?

时间:2015-04-20 11:56:55

标签: html5 asp.net-mvc-4

我有这个HTML5代码:

   <form id="LogInArea"  action = "/Home/ValidateUser" >
    <fieldset>
        <legend>Login Page</legend>
        <p>
        <label>
            User name<br>
            <input type="text" id="userName" required></label></p>
        <p><label>
            Password<br>
            <input type="password" id="password" required></label></p>
        <p>@*<button id="LoginButton">
            Log in</button>*@
            <button>submit</button>
            </p>
        <a href="/Home/RegisterPage">Register</a> if you don't have an account.
    </fieldset>
</form>

当我按提交按钮时,会触发Home控制器中的ValidateUser()操作。

我的问题是如何在ValidateUser()操作中获取提交的表单以及如何获取表单元素的值?

P.S。我不想使用模特!

3 个答案:

答案 0 :(得分:1)

您还应该为&#39;名称&#39;定义一个值。属性,所以代替:

<input type="text" id="userName" required>

应该是

<input type="text" id="userName" name="username" required>

然后在你的控制器中:

public ActionResult ValidateUser(string username)
{
...
}

答案 1 :(得分:1)

你必须抓住你传递给你观点的模型,即

如果您已将Login模型传递到视图中,则必须将其捕获到控制器的操作方法中,如下所示:

public ActionResult Login(Login model)
{
    // Login is your model which you passed into view. Validate it here.
}

要获取值,您必须在输入标记中使用name属性。 如果你有任何困惑,请告诉我。

答案 2 :(得分:1)

我不确定您为什么不想像其他答案那样使用模型,但是您可以使用Request对象获取表单值。

[HttpPost]
public void ValidateUser()
{
    string name = Request.Form["userName"];
    string password = Request.Form["password"];
}

但是,您需要确保将表单方法设置为“发布”并将名称值添加到所有提交的表单字段中。

<form id="LogInArea"  action = "/Home/ValidateUser" method="post">
    ...
    <input type="text" id="userName" name="userName" required></label>
    ...
    <input type="password" id="password" name="password" required></label>
    ...
</form>