2013-05-08 6 views
15

मैं MVC करने के लिए नया हूँ और मैं अपने अनुप्रयोग के लिए एक पंजीकरण प्रपत्र बना रहा हूं, लेकिन मेरे बटन क्लिक वर्तमान कोड काम नहीं कर रहा नीचेकैसे MVC में बटन क्लिक गति प्रदान करने के 4

दृश्य नहीं दिया जाता है

<fieldset> 
      <legend>Sign Up</legend> 
      <table> 
       <tr> 
        <td> 
         @Html.Label("User Name") 
        </td> 
        <td> 
         @Html.TextBoxFor(account => account.Username) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         @Html.Label("Email") 
        </td> 
        <td> 
         @Html.TextBoxFor(account => account.Email) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         @Html.Label("Password") 
        </td> 
        <td> 
         @Html.TextBoxFor(account => account.Password) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         @Html.Label("Confirm Password") 
        </td> 
        <td> 
         @Html.Password("txtPassword") 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <input type="submit" name="btnSubmit" value="Sign Up" /> 
        </td> 
       </tr> 
      </table> 
     </fieldset> 

मॉडल

public class Account 
{ 
    public string Username { get; set; } 
    public string Email { get; set; } 
    public string Password { get; set; }  

} 

नियंत्रक (पूरी तरह से पूरा नहीं)

public class AccountController : Controller 
    { 
     // 
     // GET: /Account/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     // GET: /Account/SignUp 

     public ActionResult SignUp() 
     { 

      return View(); 

     } 

     [HttpPost] 
     public ActionResult SignUp(string userName,string email,string password) 
     { 
      Account createAccount = new Account(); 

      createAccount.Username = userName; 
      createAccount.Email = email; 
      createAccount.Password = password; 

      return View("Index"); 

     } 

    } 

यहां क्लिक ईवेंट को परिभाषित करने के लिए कैसे मैंने http पोस्ट की कोशिश की लेकिन यह काम नहीं कर रहा है मुझे पता है कि मेरा कोड सही नहीं है कृपया ध्यान दें कि

+0

आप अपना दृश्य चारों ओर एक रूप की क्या ज़रूरत है के रूप में मैं नहीं कर सकते एक –

+0

देखना ** [क्लाइंट साइड पर इसे करने के लिए यहां देखें] (http://stackoverflow.com/a/16245682/2007801) ** –

उत्तर

32

एएसपी.नेट एमवीसी एएसपी क्लासिक जैसी घटनाओं पर काम नहीं करता है; कोई "बटन क्लिक इवेंट" नहीं है। आपके नियंत्रक विधियां सर्वर को भेजे गए अनुरोधों से मेल खाते हैं।

इसके बजाय, आप इस तरह कोड कुछ में उस रूप रैप करने के लिए की जरूरत है:

@using (Html.BeginForm("SignUp", "Account", FormMethod.Post)) 
{ 
    <!-- form goes here --> 

    <input type="submit" value="Sign Up" /> 
} 

यह एक फार्म स्थापित करेगा, और फिर अपने प्रस्तुत इनपुट एक पोस्ट है, जो आपके SignUp() विधि मारा जाएगा ट्रिगर किया जाएगा, यह मानते हुए आपके मार्ग ठीक तरह से स्थापित हैं (डिफ़ॉल्ट काम करना चाहिए)।

0

एमवीसी घटनाओं को नहीं करता है। बस एक फॉर्म डालें और पेज पर बटन सबमिट करें और HttpPost विशेषता से सजाए गए तरीके से उस अनुरोध को संसाधित किया जाएगा।

आप विचारों, रूपों और नियंत्रकों को बनाने के तरीके पर एक ट्यूटोरियल या दो पढ़ना चाहेंगे।

+0

<इनपुट प्रकार = "सबमिट करें" नाम = "बीटीएन सबमिट करें" मूल्य = "साइन अप करें" /> लेकिन यह मेरे लिए काम नहीं कर रहा है –

+0

काम नहीं कर रहा एक त्रुटि नहीं है। समझाएं (आपके प्रश्न में, टिप्पणियों में नहीं) जो आप देखते हैं और आप क्या उम्मीद करते हैं। – CodeCaster

2

यो प्रति @anaximander रों जवाब के रूप में इस कोड को

@using (Html.BeginForm("SignUp", "Account", FormMethod.Post)){<fieldset> 
    <legend>Sign Up</legend> 
    <table> 
     <tr> 
      <td> 
       @Html.Label("User Name") 
      </td> 
      <td> 
       @Html.TextBoxFor(account => account.Username) 
      </td> 
     </tr> 
     <tr> 
      <td> 
       @Html.Label("Email") 
      </td> 
      <td> 
       @Html.TextBoxFor(account => account.Email) 
      </td> 
     </tr> 
     <tr> 
      <td> 
       @Html.Label("Password") 
      </td> 
      <td> 
       @Html.TextBoxFor(account => account.Password) 
      </td> 
     </tr> 
     <tr> 
      <td> 
       @Html.Label("Confirm Password") 
      </td> 
      <td> 
       @Html.Password("txtPassword") 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="submit" name="btnSubmit" value="Sign Up" /> 
      </td> 
     </tr> 
    </table> 
</fieldset>} 
10

कोशिश कर सकते हैं लेकिन अपनी पंजीकरण कार्रवाई देखना चाहिए और अधिक की तरह

[HttpPost] 
    public ActionResult SignUp(Account account) 
    { 
     if(ModelState.IsValid){ 
      //do something with account 
      return RedirectToAction("Index"); 
     } 
     return View("SignUp"); 
    } 
+3

दरअसल, थोड़ा सत्यापन एक अच्छा विचार है। – anaximander

संबंधित मुद्दे