2009-08-31 14 views
6

कुछ चर पर मूल्य को संग्रहीत करने के लिए मैं एएसपीनेट एमवीसी में टेक्स्टबॉक्स का मूल्य कैसे प्राप्त करूं?सबमिट पर एक एएसपीएनटी एमवीसी टेक्स्टबॉक्स से मूल्य प्राप्त करना

मेरे पास इंडेक्स व्यू पेज पर <%=Html.TextBox("testbox") %> जैसे टेक्स्टबॉक्स हैं।

मैं इस <input type="submit" />

की तरह एक बटन मैं जो आता है जब आप एक नया MVC एप्लिकेशन को खोलने डिफ़ॉल्ट दृश्य पेज का उपयोग कर रहा है।

धन्यवाद।

उत्तर

8

आपके नियंत्रक में;

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Search(FormCollection collection) 
{ 
    String g = collection["textFieldname"] 
} 

या आप इसका उपयोग कर सकते हैं;

TryUpdateModel(modelName); 

ऊपर पसंदीदा समाधान है। यदि आपको TryUpdateModel पर अधिक जानकारी चाहिए तो एक टिप्पणी पोस्ट करें और मैं इसे आपके लिए बाहर कर दूंगा।

संपादित करें:

बजाय बताएं कि यह मुझे बस तुम्हें दिखाता;

अपने नियंत्रक में:

public class MyFormViewModel 
{ 
    public string myInput {get; set;} 
} 

public ActionResult Search() 
{ 
    MyFormViewModel fvm = new MyFormViewModel(); 
    return View(fvm); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Search(FormCollection collection) 
{ 
    MyFormViewModel fvm = new MyFormViewModel(); 
    TryUpdateModel<MyFormViewModel>(fvm); 

    string userInput = fvm.myInput; 
} 
फिर अपने ध्यान में रखते हुए

;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %> 

<%= Html.TextBox("myInput", Model.myInput) %> 

दो चीज़ों पर ध्यान दें।

पृष्ठ नियंत्रक में परिभाषित आपके मॉडल/वर्ग से विरासत में है। इसके लिए सबसे अच्छी जगह नहीं है लेकिन एक उदाहरण के रूप में यह करेगा।

दूसरी बात यह है कि टेक्स्ट बॉक्स मॉडल में संपत्ति के समान ही है। इस मामले में myInput।

जब नियंत्रक UpdateModel करता है तो यह चीज़ को प्रतिबिंबित करेगा और आपके फॉर्म व्यू मॉडल के भीतर फ़ील्ड के नाम के साथ टेक्स्टबॉक्स नाम से मेल खाता है।

समझ में आओ?

संपादित 2

भी भूल नहीं है एक में बटन और अपने क्षेत्र रैप करने के लिए;

<% using (Html.BeginForm()) {%> 
+0

नमस्कार, उत्तर के लिए ... कृपया मुझे बताओ कि tryupdatemodel (modelname) दृश्य पर पाठ बॉक्स के साथ किसी भी संबंध है ... धन्यवाद – Josh

+0

के माध्यम से यह देखा .... मैं यह समझ .. .. लेकिन यहां ... <% = एचटीएमएल। टेक्स्टबॉक्स ("myInput", model.myInput)%>, Model.myInput स्वचालित रूप से myFormViewModel.myinput पर मैप करेगा? मुझे लगता है कि आपने यह इंगित किया है कि यह प्रासंगिक वर्ग नाम प्राप्त करके प्रतिबिंब का उपयोग करके स्वचालित रूप से हल हो जाता है ... थोड़ा सिर कताई क्योंकि आप इसे "मॉडल। MyInput" कहते हैं ... लेकिन मुझे लगता है कि मैं शायद कोड लिखूंगा और यह काम करेगा। – Josh

+0

मेरा मतलब है कि यह कैसे पता चलेगा कि कौन सा मॉडल ... और कहां ... मैं यही सोच रहा था – Josh

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