21

से MVC नियंत्रक कार्रवाई करने के लिए मैं नीचे करने के लिए कुछ इसी तरह का उपयोग कर एक MVC नियंत्रक कार्रवाई के भीतर अन्य नियंत्रक कार्रवाई करने के मार्ग यूआरएल पैदा करने के लिए इस्तेमाल किया कर रहा हूँ:उत्पन्न मार्ग यूआरएल वेबएपीआई

public class ApplicationController : Controller 
{ 
    public ActionResult Index() 
    { 
     var url = Url.RouteUrl("routename", 
      new { controller = "Application", Action = "Index2" , other="other" }); 
    } 

    public ActionResult Index2(string other) 
    { 
    } 
} 

लेकिन मैं यह भी करने में सक्षम होने की जरूरत है वेबपीआई के भीतर से एमवीसी नियंत्रक कार्यों के लिए यूआरएल उत्पन्न करें, मैं यह करने के बारे में कैसे जाऊं?

एपीआईसींट्रोलर पर एक UrlHelper संपत्ति प्रतीत होती है, लेकिन मुझे इसका उपयोग करने के तरीके के बारे में कोई उदाहरण नहीं मिल रहा है और मैं इसे स्वयं समझने में सक्षम नहीं हूं।

अद्यतन: कारण मैं एक यूआरएल उत्पन्न करने का प्रयास कर रहा हूं यह है कि यह विशेष वेबपी विधि एक ईमेल भेजती है जो प्राप्तकर्ता को साइट के उचित अनुभाग में वापस निर्देशित करने के लिए एक लिंक प्रदान करती है। मैं स्पष्ट रूप से इसे हार्डकोडिंग से दूर जाना चाहता हूं क्योंकि यह विभिन्न तैनाती के लिए काम नहीं करेगा और अगर मैं रूटिंग बदलना शुरू करता हूं तो यह लिंक टूटा जाएगा। क्या ऐसा करने के लिए कोई बेहतर तरीका है?

उत्तर

27

आप एमवीसी रूट नामों के साथ-साथ वेब एपीआई UrlHelper के साथ भी उपयोग कर सकते हैं। उदाहरण के लिए,

Url.Link("Default", new { Controller = "Account", Action = "Login" }); 

या

Url.Route("Default", new { Controller = "Account", Action = "Login" }); 
+0

आप सही हैं। धन्यवाद – Kramer00

+0

@TrueBlueAussie आप गलत UrlHelper पर देख रहे हैं। Http एक को एमवीसी नहीं देखें। – Steve

+1

http://msdn.microsoft.com/en-us/library/system.web.http.routing.urlhelper_methods(v=vs.118).aspx। यदि आप विशेषता रूटिंग का उपयोग कर रहे हैं, तो अपने मार्गों का नाम दें। – Steve

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