Asp.net mvc 如何在ASP.NET页面中获取HTML提交按钮以调用MVC控制器类中的控制器方法

Asp.net mvc 如何在ASP.NET页面中获取HTML提交按钮以调用MVC控制器类中的控制器方法,asp.net-mvc,Asp.net Mvc,我正在构建一个ASP.NET MVC web应用程序,我希望在一个网页中获得一个HTML提交按钮,以访问控制器类中的post controller方法,并最终通过此控制器方法链接到站点上的另一个页面,如Profile.aspx。我目前的情况如下: 我有一个HTML网页,它是我的索引视图,如下所示: <div> <h1>Login</h1> Username<br/> <input id="Text1" type="te

我正在构建一个ASP.NET MVC web应用程序,我希望在一个网页中获得一个HTML提交按钮,以访问控制器类中的post controller方法,并最终通过此控制器方法链接到站点上的另一个页面,如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>
如何通过按钮访问控制器的此方法,以及如何重定向到其他页面


感谢您的帮助!:

在标记中,为控制器/action-to-action属性提供URL,并将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>

在标记中,为控制器/action-to-action属性提供URL,并将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>

必须将登录控件包装在标记中,并指定操作属性

例:

这样就可以在action方法中接收文本框的值。您需要做的唯一一件事是更新action方法以开始使用数据


必须将登录控件包装在标记中,并指定操作属性

例:

这样就可以在action方法中接收文本框的值。您需要做的唯一一件事是更新action方法以开始使用数据

使用Html.begin

使用Html.begin


你的表单标签在哪里?嗨,Jenny,我的网页目前没有表单标签,它只是用asp:content标签包装的html。你需要表单标签。它定义了表单数据发送到的URL。如果母版页已具有包装所有内容的URL,则无法在asp.net webforms页面中放置标记,这是webforms项目的标准。您是对的。但是Matt的网页不是ASP.NET WebForms。你的表单标签在哪里?嗨,Jenny,我的网页目前没有表单标签,它只是用ASP:content标签包装的html。你需要表单标签。它定义了表单数据发送到的URL。如果母版页已具有包装所有内容的URL,则无法在asp.net webforms页面中放置标记,这是webforms项目的标准。您是对的。但是Matt的页面不是ASP.NET WebForms.Correct。另外,请确保使用标签标签指定标签。嗨,Umair,这对我不起作用,我传递了我的controllername,而不是你指定的controllername字段,但当我在控制器中使用RedirectToActionwww.google.com时,我的网页不会重定向method@Url.ActionLogIn,ControllerName是razor语法。如果您使用的是常规ASP.NET语法,则应将其重定向到Actionwww.google.com,因为www.google.com在您的应用程序中不是一个操作。相反,使用返回红色irecthttp://www.google.com;Hi LazyTarget,第一行看起来像:还是表单操作标记仍然包装它?正确。另外,请确保使用标签标签指定标签。嗨,Umair,这对我不起作用,我传递了我的controllername,而不是你指定的controllername字段,但当我在控制器中使用RedirectToActionwww.google.com时,我的网页不会重定向method@Url.ActionLogIn,ControllerName是razor语法。如果您使用的是常规ASP.NET语法,则应将其重定向到Actionwww.google.com,因为www.google.com在您的应用程序中不是一个操作。相反,使用返回红色irecthttp://www.google.com;Hi LazyTarget,第一行看起来像:还是表单操作标记仍然将其包装?
<form action='@Url.Action("LogIn","ControllerName")' method="post">
    <!-- Login controls -->
</form>
<input id="Text1" type="text" name="username" />
[HttpPost]
public ActionResult LogIn(string username, string password)
{
    // Login logic
    return View();
}
@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();
}