ASP.NET Core MVC में एस्प टैग हेल्पर्स के लिए लिंक पैरामीटर कैसे जोड़ें


104

मुझे ASP.NET MVC 1-5 के साथ बहुत अनुभव है । अब मैं ASP.NET Core MVC सीखता हूं और पेज में लिंक करने के लिए एक पैरामीटर पास करना होता है। उदाहरण के लिए मेरे पास निम्नलिखित क्रिया है

 [HttpGet]
 public ActionResult GetProduct(string id)
 {
      ViewBag.CaseId = id;
      return View();
 }

मैं टैग सहायकों का उपयोग करके इस कार्रवाई के लिए लिंक कैसे लागू कर सकता हूं?

<a asp-controller="Product" asp-action="GetProduct">ProductName</a>

जवाबों:


195

आप asp-route-अपने मार्ग चर नामों को उपसर्ग करने के लिए विशेषता उपसर्ग का उपयोग कर सकते हैं ।

उदाहरण:

<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>

2
यदि मेरे पास कई पैरामीटर हैं, तो मुझे इस विधि के साथ सब कुछ जोड़ना होगा?
एल्विन ममाडोव

40
@ एल्विन-ममाडोव, यूप, asp-route-yourParamNameउदाहरण के लिए , का उपयोग करना :asp-route-foo="bar"
एलेक्स

2
@ElvinMammadov asp-route-yourParamNameअतिरिक्त इनपुट मापदंडों के संबंध में आपकी टिप्पणी बहुत उपयोगी थी। धन्यवाद।
नाम

@ एलेक्स आपके उदाहरण के रूप में HTML उत्पन्न करेगा <a href="https://stackoverflow.com/Product/GetProduct/10">ProductName</a>:। प्रश्न : लंगर टैग हेल्पर का उपयोग करते समय हम पैरामीटर मान (जैसे 10) का उपयोग कैसे कर सकते हैं jquery? `
नम

3
@nam आप एएसपी सहायक के बगल में एक डेटा विशेषता जोड़ सकते हैं। <a asp-route-id="@item.Id" data-id="@item.Id" />और फिर आईडी के साथ $('a').attr('data-id'):)
Steen Schütt

18

आप निम्नलिखित सिंटैक्स को लागू करना चाह सकते हैं।

<a asp-controller="Member"
   asp-action="Edit"
   asp-route-level="3"
   asp-route-type="full"
   asp-route-id="12">Click me</a>

जो इस तरह कॉल रूट का उत्पादन करेगा।

/ सदस्य / संपादित करें / 3 / पूर्ण / 12

फिर आप इसे नीचे दिखाए गए तरीके से प्राप्त कर सकते हैं।

[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }

हालांकि, विधि को सजाने वाली विशेषता MVC में आवश्यक नहीं है, यह अधिक स्पष्ट रूप से दिखाता है कि लिंक से विशेषताओं को विधि में पैरामीटर में कैसे बांधा जाए।


मेरे लिए इसके बजाय /Member/Edit/3/full/12यह उत्पन्न होता है/Member/Edit/3?type=full&id=12
आरिफ़

1
@Arif यकीन है कि क्यों और मैं इस समय एक सी # वातावरण में नहीं हूँ के लिए नहीं कह सकता (बहुत आलसी एक भी शुरू करने के लिए)। हालाँकि, मेरा सुझाव है कि यह इस बात पर निर्भर करता है कि क्या हम स्पष्ट रूप से [FromUrl] या [FromQuery] इत्यादि का उपयोग कर रहे हैं, जो .NET .NET के विभिन्न संस्करणों के बीच भिन्न हो सकते हैं और / या शुद्ध WebAPI कॉल के लिए विरासत में मिली कक्षाओं पर निर्भर हैं। BaseController के विचारों और सभी के साथ वर्गों के लिए विरोध )। बस एक परिसीमन, एनबी।
कोनराड विल्टर्स्टन

0

यदि आप चर आईडी को ग्रिड में लिंक में रखना चाहते हैं या कोड के नीचे कुछ इस्तेमाल किया जा सकता है

[HttpGet]
[Route("/Product/GetProduct/{id}")]
 public ActionResult GetProduct(string id)
 {
      ViewBag.CaseId = id;
      return View();
 }


 <a  asp-controller="Product" asp-action="GetProduct" asp-route-id="@item.id" >ProductName</a>

क्या आप अपना उत्तर बता सकते हैं? स्पष्टीकरण के बिना कोड-केवल उत्तर नीचे या हटा दिए जाते हैं।
एसएस ऐनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.