Asp.Net MVC का उपयोग करता है
public class SearchViewModel
{
[DisplayName("search query *")]
[Required]
public string Query { get; set; }
}
तो आप एक नियंत्रक बारे में मानक HTTP क्रियाएँ। एचटीएमएल भाग के लिए, यह एक सामान्य एचटीएमएल फॉर्म है जो यूआरएल को इंगित करता है। सर्वर पक्ष, वह यूआरएल एक नियंत्रक/क्रिया के लिए भेजा जाएगा जो इनपुट को संभालेगा और जो आवश्यक है उसे करें।
चलो एक नमूना है। आप एक खोज फ़ॉर्म बनाना चाहते हैं। सबसे पहले, खोज फ़ॉर्म को POST के बजाय HTTP GET विधि का उपयोग करने का सबसे अच्छा अभ्यास है, इसलिए खोज परिणामों को बुकमार्क किया जा सकता है, लिंक किया जा सकता है, अनुक्रमित, आदि। मैं Html.BeginForm सहायक विधि का उपयोग नहीं करूँगा और चीजों को और अधिक बनाने के लिए स्पष्ट।
<form method="get" action="@Url.Action("MyAction", "MyController")">
<label for="search">Search</label>
<input type="text" name="search" id="search" />
<button type="submit">Perform search</button>
</form>
यह आपको आवश्यक सभी HTML है। अब आप एक नियंत्रक "MyController" कहा जाता हूँ है और विधि कुछ इस तरह होगा:
[HttpGet]
public ActionResult MyAction(string search)
{
//do whatever you need with the parameter,
//like using it as parameter in Linq to Entities or Linq to Sql, etc.
//Suppose your search result will be put in variable "result".
ViewData.Model = result;
return View();
}
अब दृश्य "MyAction" कहा जाता है रेंडर किया जाएगा, और कहा कि देखने का मॉडल अपने "परिणाम" हो जाएगा । फिर आप इसे अपनी इच्छानुसार प्रदर्शित करेंगे।
स्रोत
2011-11-17 13:35:08
सबसे पहले धन्यवाद साथी। जैसा कि आप देख सकते हैं, अन्य जवाब में @ माटेटेओ मोस्का ने HTTP क्रियाओं के उपयोग का उल्लेख किया है। क्या आपको लगता है कि किसी को इसका उपयोग करना चाहिए या हमेशा ऐसे प्रयोजनों के लिए व्यूमोडेल उपयोग का पालन करना चाहिए –
@ पंकज उपाध्याय, मॉडल और HTTP क्रियाएं दो पूरी तरह अलग विचार हैं जिनमें कुछ भी सामान्य नहीं है।आपको हमेशा एएसपी.नेट एमवीसी अनुप्रयोग में दृश्य मॉडल का उपयोग करना चाहिए और जहां तक HTTP क्रियाएं संबंधित हैं, ठीक है, क्योंकि यह एक वेब अनुप्रयोग है और HTTP प्रोटोकॉल पर आधारित है, आप पहले ही HTTP क्रियाओं का उपयोग कर रहे हैं। यदि आप चाहें तो एचटीएमएल फॉर्म पर जीईटी क्रिया का उपयोग कर सकते हैं। Html.BeginForm हेल्पर में एक अधिभार है जो आपको यह निर्दिष्ट करने की अनुमति देता है: '@using (HTML.BeginForm (शून्य, शून्य, FormMethod.Get)) {...} '। फिर उस क्रिया से '[HttpPost]' विशेषता को हटा दें जिसे आप सबमिट कर रहे हैं। –
या ... डैट्स मैं क्या प्राप्त करने का उपयोग कह रहा था। क्या आप इस तरह के उद्देश्यों के लिए नहीं सोचते हैं, इसे देखने के बजाय इसका उपयोग करना बेहतर होगा? क्योंकि इस तरह से इनपुट इनपुट लेने के लिए किसी को एक अलग व्यूमोडेल बनाने की आवश्यकता नहीं होती है। –