2013-07-12 3 views
0

Я создаю веб-приложение ASP.NET MVC, и я хочу получить кнопку отправки HTML на одной веб-странице, чтобы получить доступ к post controller в моем классе контроллера и, наконец, ссылку на другую страницу на сайте, такую ​​как Profile.aspx, через этот метод контроллера. Моя текущая ситуация выглядит следующим образом:Как получить кнопку отправки HTML на странице ASP.NET для вызова метода контроллера в классе контроллера MVC

У меня есть 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(); 
} 

Как этот метод контроллера с помощью кнопки и как перенаправить на другую страницу?

Вся помощь приветствуется! :)

+1

Где ваша форма тег? –

+0

Hi Jenny, В настоящее время моя веб-страница не содержит тега формы, это просто html, завернутый в asp: теги контента – MattTheHack

+0

Вам нужен тег формы. Он определяет URL-адрес, куда отправляются данные вашей формы. –

ответ

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> 
+0

Исправить. Также убедитесь, что вы используете метки меток для указания ваших меток. –

+0

Hi Umair, Это не работает для меня, я передал свое имя controllername вместо поля «ControllerName», которое вы указали, но моя веб-страница не перенаправляется, когда я использую RedirectToAction («www.google.com») в моем методе контроллера – MattTheHack

+0

'@ Url.Action (" LogIn "," ControllerName ")' - синтаксис бритвы. Если вы используете обычный синтаксис ASP.NET, он должен быть '<% = Url.Action (« LogIn »,« ControllerName »)%>' – LazyTarget

1

Вы должны обернуть элементы управления для входа в <form> тега, и указав атрибут действия.

Пример:

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

Делая это, когда форма отправлена ​​(нажав на кнопку с type="submit" или прессования ввести в текстовом поле), это направляется к методу LogIn() в указанном контроллере.

Если вы хотите разместить данные, например, имя пользователя и пароль, вам необходимо установить атрибут name на элементах управления вводом.

Ex.

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

Это позволяет получить значение текстового поля внутри метода действия. Единственное, что вам нужно сделать, это обновить метод действия, чтобы начать использовать данные.

Ex.

[HttpPost] 
public ActionResult LogIn(string username, string password) 
{ 
    // Login logic 
    return View(); 
} 
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(); 
} 
Смежные вопросы