1

我正在构建一个 ASP.NET MVC Web 应用程序,我想在一个网页中获取一个 HTML 提交按钮,以访问我的控制器类中的后控制器方法,最后通过此控制器链接到站点上的另一个页面,例如 Profile.aspx方法。我目前的情况如下:

我有一个 HTML 网页,它是我的索引视图,如下所示:

<div>
    <h1>Login</h1>
    Username<br/>
    <input id="Text1" type="text" /><br />
    <br />
    Password<br/>
    <input id="Password1" type="password" /><br />
    <br />
    <input id="Submit1" type="submit" value="Login" /><br />
</div>

当我点击登录按钮时,我想链接到控制器类中的 LogIn() 方法并随后重定向到页面,我的 LogIn 控制器如下所示:

[HttpPost]
public ActionResult LogIn()
{
    return View();
}

如何通过按钮访问控制器的这种方法以及如何重定向到另一个页面?

感谢所有帮助!:)

4

3 回答 3

2

在您的标签中,将 URL 提供给您的控制器/操作以action将您的 HTML 属性添加到您的表单中。

<form action='@Url.Action("LogIn","ControllerName")' method="post" >
<h1>Login</h1>
Username
<br />
<input id="Text1" type="text" /><br />
<br />
Password
<br />
<input id="Password1" type="password" /><br />
<br />
<input id="Submit1" type="submit" value="Login" /><br />
</div>
</form>
于 2013-07-12T07:31:59.790 回答
2

利用Html.BeginForm

@using (Html.BeginForm("LogIn", "ControllerName", FormMethod.Post))
{
    <h1>Login</h1>
    Username<br/>
    <input id="Text1" name="Text1" type="text" /><br />
    <br />
    Password<br/>
    <input id="Password1" name="Password1" type="password" /><br />
    <br />
    <input id="Submit1" type="submit" value="Login" /><br />
}

并将您的控制器更改为

[HttpPost]
public ActionResult LogIn(string Text1, string Password1)
{
    // Login logic
    return View();
}
于 2013-07-12T08:41:08.477 回答
1

您必须将登录控件包装在一个<form>标记中,并指定一个操作属性。

前任:

<form action='@Url.Action("LogIn","ControllerName")' method="post">
    <!-- Login controls -->
</form>

通过在提交表单时执行此操作(按下按钮type="submit"或在文本框中按下回车键),这将被路由到LogIn()指定控制器中的方法。

如果要发布数据,例如用户名和密码,则必须name在输入控件上设置属性。

前任。

<input id="Text1" type="text" name="username" />

这使得在 action 方法中接收文本框的值成为可能。您唯一需要做的就是更新操作方法以开始使用数据。

前任。

[HttpPost]
public ActionResult LogIn(string username, string password)
{
    // Login logic
    return View();
}
于 2013-07-12T08:08:13.027 回答