2016-05-09 3 views
-2

У меня есть 2 бита кода здесь.Невозможно получить значения формы (в поле зрения) для контроллера

Это мой контроллер в данный момент:

using System; 
using System.Net.Mail; 
using System.Web.Mvc; 
using WebMatrix.Data; 

namespace Best_prototype_01.Controllers 
{ 
    public class RecrutaController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 

      protected void btnSubmit_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       MailMessage Msg = new MailMessage(); 
       // Sender e-mail address. 
       Msg.From = new MailAddress(txtEmail.Text); 
       // Recipient e-mail address. 
       Msg.To.Add("[email protected]"); 
       Msg.Subject = txtSubject.Text; 
       Msg.Body = txtMessage.Text; 
       // your remote SMTP server IP. 
       SmtpClient smtp = new SmtpClient(); 
       smtp.Host = "smtp.gmail.com"; 
       smtp.Port = 587; 
       smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "yourpassword"); 
       smtp.EnableSsl = true; 
       smtp.Send(Msg); 
       //Msg = null; 
       lbltxt.Text = "Thanks for Contact us"; 
       // Clear the textbox valuess 
       txtName.Text = ""; 
       txtSubject.Text = ""; 
       txtMessage.Text = ""; 
       txtEmail.Text = ""; 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("{0} Exception caught.", ex); 
      } 
     } 

    } 

} 

И это мнение, что это, мол, связанные с ним (часть, вопросы, так или иначе):

<form id="form1" > 
    <div> 
     <table cellspacing="2" cellpadding="2" border="0"> 
      <tr><td></td><td><b>Contact Us Form</b></td></tr> 
      <tr><td><b>Name</b></td><td><asp:TextBox ID="txtName" /></td></tr> 
      <tr><td><b>Email</b></td><td><asp:TextBox ID="txtEmail" /></td></tr> 
      <tr><td><b>Subject</b></td><td><asp:TextBox ID="txtSubject" /></td></tr> 
      <tr><td valign="top"><b>Message</b></td><td> <asp:TextBox ID="txtMessage" Rows="5" Columns="40" TextMode="MultiLine" /></td></tr> 
      <tr><td></td><td><asp:button ID="btnSubmit" Text="Submit" onclick="btnSubmit_Click" CssClass="Button" /></td></tr> 
      <tr><td colspan="2" style=" color:red"><asp:Label ID="lbltxt" /></td></tr> 
     </table> 
    </div> 
</form> 

Может кто-то мне точку в правильное направление? Я понятия не имею, что я делаю неправильно.

+2

Это код веб-форм, а не asp.net-mvc! В MVC нет событий. Предложите вам перейти на сайт MVC и изучить основы. –

+0

Успокойся, черт возьми, брось, не все мастера в программировании, я новичок, и я изо всех сил стараюсь учиться, как насчет того, чтобы на самом деле помогать мне, а не принимать мочу? –

+1

Да, @ Рубен Перейра, пожалуйста, перейдите по основам 'asp.net-mvc' сначала http://www.w3schools.com/aspnet/mvc_intro.asp –

ответ

0

У вас нет xyz_Click() событий в вашем контроллере. То, что вы так называемые ActionResult s Что вам нужно а) определение целевых действий в вашей форме на вашем взгляде:

@using (Html.BeginForm("NameOfYour ActionResult", "NameOfController", FormMethod.Post, new { enctype = "multipart/form-data", @name = "someformname"})) 
    { 
     @Html.AntiForgeryToken() 
//your form code with inputs, combos etc. 

AntiForgeryToken обеспечивает против перекрестного сайта-проводки по пути.

Затем в контроллере создать ActionResult:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult NameOfYourActionResult(FormCollection fcol) 
{ 
//your form evaluation goes here. All your form data is accessible through fcol, e.g. like this: 
//Msg.From = new MailAddress(fcol["txtEmail"]); 

Помимо этого: да, пожалуйста, узнать о MVC основы первой. Это немного отличается от Web Forms. w3schools.com/aspnet/mvc_intro.asp

+0

Спасибо, я сейчас понял, что я делаю неправильно, я даже не знал, что веб-формы были совершенно другая вещь от MVC. –