我有这个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。我不想使用模特!
答案 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>